(57)【要約】無線通信システム用移動体端末及び他のアプリケーションのためのソフトウェアアーキテクチャが開示されている。ソフトウェアアーキテクチャは、より高位のサービスを提供するレイヤーからより低位のサービスを提供するレイヤーへ順番に配置された複数のレイヤーを備えている。また、各レイヤーには少なくとも１つのソフトウェアモジュールや、１セットの定義された依存ルールに従ってソフトウェアモジュール間を通信させるためのインターフェース手段を備えている。【特許請求の範囲】
【請求項１】
より高位レベルのサービスを提供するソフトウェアレイヤーからより低位レベルのサービスを提供するソフトウェアレイヤーへの順番で配置される複数のソフトウェアレイヤーに構成されるソフトウェアと、
各ソフトウェアレイヤーにおける少なくとも１つのソフトウェアモジュールと、
１セットの定義された依存ルールに従って、前記複数のソフトウェアレイヤーにおけるソフトウェアモジュール間の通信を可能とするインターフェース手段と、
を備えることを特徴とするソフトウェアアーキテクチャ。
【請求項２】
前記インターフェース手段は、各ソフトウェアレイヤーのためのソフトウェアバックプレインを備え、各ソフトウェアバックプレインは、それぞれのソフトウェアレイヤーにおいて少なくとも１つのソフトウェアモジュールを有する複数のインターフェースを備えることを特徴とする請求項１に記載のソフトウェアアーキテクチャ。
【請求項３】
前記１セットの定義された依存ルールは、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアバックプレイン（ＳｗＢＰ）或いはそれ自身のソフトウェアバックプレインの下の複数のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）における機能を起動させるだけであるというルールと、ソフトウェアモジュールがそれ自身のソフトウェアレイヤーより上のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェースにおける機能を決して起動しないというルールとを含むことを特徴とする請求項２に記載のソフトウェアアーキテクチャ。
【請求項４】
前記ソフトウェアはさらに、少なくとも１つの垂直的機能的ソフトウェアスタックにまとめられていることを特徴とする請求項３に記載のソフトウェアアーキテクチャ。
【請求項５】
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び同じ機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項４に記載のソフトウェアアーキテクチャ。
【請求項６】
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び異なる機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項５に記載のソフトウェアアーキテクチャ。
【請求項７】
ミドルウェアサービスレイヤーは、前記複数のソフトウェアレイヤーのうち最高位のソフトウェアレイヤーを備え、少なくとも１つのインターフェースを前記ソフトウェアアーキテクチャに提供することを特徴とする請求項１に記載のソフトウェアアーキテクチャ。
【請求項８】
無線通信システム用移動体端末であって、
ソフトウェアアーキテクチャを有するソフトウェアサービスコンポーネントを備え、
前記ソフトウェアアーキテクチャは、
より高位レベルのサービスを提供するソフトウェアレイヤーからより低位レベルのサービスを提供するソフトウェアレイヤーへの順番で配置される複数のソフトウェアレイヤーに構成されるソフトウェアと、
各ソフトウェアレイヤーにおける少なくとも１つのソフトウェアモジュールと、
１セットの定義された依存ルールに従って、前記複数のソフトウェアレイヤーにおけるソフトウェアモジュール間の通信を可能とするインターフェース手段と、
を備えることを特徴とする移動体端末。
【請求項９】
前記インターフェース手段は、各ソフトウェアレイヤー用のソフトウェアバックプレイン（ＳｗＢＰ）を備え、各ソフトウェアバックプレインは、そのそれぞれのソフトウェアレイヤーに前記少なくとも１つのモジュールとのインターフェースをを有し、
前記１セットの定義された依存ルールは、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアバックプレイン（ＳｗＢＰ）或いはそれ自身のソフトウェアバックプレインの下の複数のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）における機能を起動させるだけであるというルールと、ソフトウェアモジュールがそれ自身のソフトウェアレイヤーより上のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェースにおける機能を決して起動しないというルールとを含むことを特徴とする請求項８に記載の移動体端末。
【請求項１０】
前記ソフトウェアはさらに、少なくとも１つの垂直的機能的ソフトウェアスタックにまとめられており、
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び同じ機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項９に記載の移動体端末。
【請求項１１】
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び異なる機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項１０に記載の移動体端末。
【請求項１２】
前記少なくとも１つの垂直的機能的ソフトウェアスタックは、データ通信サービスソフトウェアスタックを有することを特徴とする請求項１０に記載の移動体端末。
【請求項１３】
前記データ通信サービスソフトウェアスタックは、様々なデータ通信サービスを提供し、そのようなサービスを提供するためにインターネットプロトコル、通信デバイス制御プロトコル、ダイアルアップネットワーキング及びリンク操作プロトコル、及び外部インターフェース多重化プロトコルのうち、１つ以上を有することを特徴とする請求項１２に記載の移動体端末。
【請求項１４】
ミドルウェアサービスレイヤーは、前記複数のソフトウェアレイヤーのうち最高位のソフトウェアレイヤーを備え、少なくとも１つのインターフェースを前記ソフトウェアアーキテクチャに提供することを特徴とする請求項８に記載の移動体端末。
【請求項１５】
さらに、前記ソフトウェアコンポーネントによって制御されるハードウェアサービスコンポーネントを備えることを特徴とする請求項１４に記載の移動体端末。
【請求項１６】
前記無線通信システムは、セルラー通信システムで構成されることを特徴とする請求項８に記載の移動体端末。
【請求項１７】
前記セルラー通信システムは、第３世代セルラー通信システムであることを特徴とする請求項１６に記載の移動体端末。
【請求項１８】
無線通信システム用移動体端末のためのプラットフォームアセンブリであって、
ソフトウェアサービスコンポーネントと、
前記ソフトウェアサービスコンポーネントによって制御されるハードウェアサービスコンポーネントと、
インターフェースを前記プラットフォームアセンブリに提供するミドルウェアサービスコンポーネントと、を備え、
前記ソフトウェアサービスコンポーネントのソフトウェアと前記ミドルウェアサービスコンポーネントのソフトウェアとは、ソフトウェアアーキテクチャにまとめられており、このソフトウェアアーキテクチャは、
より高位レベルのサービスを提供するソフトウェアレイヤーからより低位レベルのサービスを提供するソフトウェアレイヤーへの順番で配置される複数のソフトウェアレイヤーに構成されるソフトウェアと、
各ソフトウェアレイヤーにおける少なくとも１つのソフトウェアモジュールと、
１セットの定義された依存ルールに従って、前記複数のソフトウェアレイヤーにおけるソフトウェアモジュール間の通信を可能とするインターフェース手段と、
を備えることを特徴とするプラットフォームアセンブリ。
【請求項１９】
前記インターフェース手段は、各ソフトウェアレイヤー用のソフトウェアバックプレイン（ＳｗＢＰ）を備え、各ソフトウェアバックプレインは、そのそれぞれのソフトウェアレイヤーに前記少なくとも１つのモジュールとのインターフェースをを有し、
前記１セットの定義された依存ルールは、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアバックプレイン（ＳｗＢＰ）或いはそれ自身のソフトウェアバックプレインの下の複数のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）における機能を起動させるだけであるというルールと、ソフトウェアモジュールがそれ自身のソフトウェアレイヤーより上のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェースにおける機能を決して起動しないというルールとを含むことを特徴とする請求項１８に記載のプラットフォームアセンブリ。
【請求項２０】
前記ソフトウェアはさらに、少なくとも１つの垂直的機能的ソフトウェアスタックにまとめられており、
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び同じ機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項１９に記載のプラットフォームアセンブリ。
【請求項２１】
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び異なる機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項１９に記載のプラットフォームアセンブリ。
【請求項２２】
前記少なくとも１つの垂直的機能的ソフトウェアスタックは、ＵＭＴＳアクセスサービスソフトウェアスタック、データ通信サービスソフトウェアスタック、マンマシーンインターフェーススタック、アプリケーションプラットフォームサービススタック及び、動作及びサービスソフトウェアスタックのうち、少なくとも１つを含むことを特徴とする請求項２０に記載のプラットフォームアセンブリ。
【請求項２３】
前記ミドルウェアサービスコンポーネントは、アプリケーションソフトウェアを搭載し、インストールし、動作させるための少なくとも１つのインターフェースを提供し、移動体端末プラットフォームシステムを提供することを特徴とする請求項１８に記載のプラットフォームアセンブリ。
【請求項２４】
前記無線通信システムは、セルラー通信システムであることを特徴とする請求項１８に記載のプラットフォームアセンブリ。
【請求項２５】
前記セルラー通信システムは、第２世代セルラー通信システムで構成されることを特徴とする請求項２４に記載のプラットフォームアセンブリ。
【請求項２６】
ソフトウェアアーキテクチャを構成する方法であって、
より高位レベルのサービスを提供するソフトウェアレイヤーからより低位レベルのサービスを提供するソフトウェアレイヤーへの順番で配置される複数のソフトウェアレイヤーであって、それぞれ少なくとも１つのソフトウェアモジュールを含む複数のソフトウェアレイヤーにソフトウェアを構成する工程と、
１セットの定義された依存ルールに従って、前記複数のソフトウェアレイヤーにおけるソフトウェアモジュール間の通信を可能とするインターフェース手段を提供する工程と、
を備えることを特徴とする方法。
【請求項２７】
前記インターフェース手段は、各ソフトウェアレイヤー用のソフトウェアバックプレイン（ＳｗＢＰ）を備え、各ソフトウェアバックプレインは、そのそれぞれのソフトウェアレイヤーに前記少なくとも１つのモジュールとのインターフェースをを有し、
前記１セットの定義された依存ルールは、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアバックプレイン（ＳｗＢＰ）或いはそれ自身のソフトウェアバックプレインの下の複数のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）における機能を起動させるだけであるというルールと、ソフトウェアモジュールがそれ自身のソフトウェアレイヤーより上のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェースにおける機能を決して起動しないというルールとを含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記構成する工程はさらに、少なくとも１つの垂直的機能的ソフトウェアスタックに前記ソフトウェアを構成することを特徴とする請求項２７に記載の方法。
【請求項２９】
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び同じ機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記１セットの定義された依存ルールはさらに、ソフトウェアレイヤーのソフトウェアモジュールがそれ自身のソフトウェアレイヤーのソフトウェアバックプレイン（ＳｗＢＰ）のインターフェース及び異なる機能のソフトウェアスタックにおける機能を起動させるというルールを含むことを特徴とする請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して無線通信の分野に関し、特に無線通信システム用移動体端末のためのソフトウェアアーキテクチャに関するものである。
【０００２】
なお、本願は、２００２年２月１５日出願の米国仮特許出願番号６０／３５７，２９１及び６０／３５７，３６６、並びに２００２年９月２３日出願の米国仮出願番号６０／４１２，７５６に基づく優先権主張を伴うものである。
【背景技術】
【０００３】
セルラー無線通信システムは、１９８０年代に最初に導入されて以来、システムで用いられる移動体端末（移動局）は、ますます複雑になってきている。当初、移動体端末は、音声電話サービスを提供すること、つまり、音声通信を伝送したり、受信したりすることを主として設計されたものである。その何年か後には、移動体端末は、音声電話のデータに関係ないユーザデータを通信する能力をも含むように開発された。そのようなユーザデータには、例えば、パーソナルコンピュータ経由で開始されるダイアルアップネットワーク接続上を通信されるデータを含むものであった。
【０００４】
現在、いわゆる”第３世代”（３Ｇ）システムが、将来のセルラー通信システムのために開発されつつある。３Ｇシステムは、高速インターネットと伝統的な音声通信を組み合わせるもので、これにより音声通信に加えてユーザがインターネットブラウジング、ストリーミングオーディオ／ビデオ、ビデオ会議、その他多くの能力を用いることができるようになるものである。
【０００５】
第３世代パートナーシッププロジェクト（３ＧＰＰ）は、世界中で開発されている幾つかの３Ｇシステムの間で互換性を保証するために確立されたものである。ユニバーサル移動体電話システム（ＵＭＴＳ）が３ＧＰＰによって開発されており、これにより世界中のどこにでも音声、データ及びマルチメディアを通信することのできる地球上及び衛星上のシステムを含む３Ｇシステムを提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
３ＧＰＰ標準を介してセルラー電話システムに含められつつある急激に増加した機能は、そのシステムで用いられるべき移動体端末の開発者達に実質的な要望を出してきたものであった。この要望は、移動体端末はサイズ、メモリ、パワーの点で限定される“リソース欠乏”環境であるという事実によって強烈なものとなっている。
【０００７】
伝統的に、移動体端末製造業者は、基本的な端末動作に必要な全てのハードウェア及びソフトウェアだけでなく、製造業者又は特定のユーザのマーケットニーズについての感覚に基づいて所望されたフィーチャや能力を提供するに必要なソフトウェアを含む実質的に完全な移動体端末システムを設計し、製造し、市場に出してきた。そのようなアプローチでは、市場ニーズにおける急激な変化に即座に対応し、又は複数ユーザの多種多様な要求を満足させるには充分な柔軟性がない。
【０００８】
さらに、移動体端末に組み込まれたソフトウェアは、通常、それぞれの転送インターフェース（exported interfaces）を呼び出すことによって他と通信する多くのソフトウェアモジュールで構成されるアーキテクチャ内にまとめられている。そのようなアーキテクチャの問題点は、クライアントをサーバーから分離する特定のルールがないということであり、このことによって、ソフトウェアがまとめられている方法を目に見えるようにすることが困難になるものである。結果として、現行のアーキテクチャスキームは、クライアントとサーバーとを同レベルの各モジュールにおいて機能的に融合させることになっている。そのような融合によって、ソフトウェアの構成、開発及び維持において深刻な問題が生じている。
【０００９】
従って、無線通信システム用移動体端末のためのソフトウェアアーキテクチャであって、ソフトウェアが容易に視覚化して理解することができるような論理的方法で構成される他のアプリケーションのためのソフトウェアアーキテクチャのニーズがある。
【課題を解決するための手段】
【００１０】
本発明は、無線通信システム用移動体端末のためのソフトウェアアーキテクチャであって、ソフトウェアが容易に視覚化して理解することができるような論理的方法で構成される他のアプリケーションのためのソフトウェアアーキテクチャを提供するものである。
【００１１】
本発明によるソフトウェアアーキテクチャは、よりハイレベルサービスを提供するソフトウェアレイヤーからより低レベルサービスを提供するソフトウェアレイヤーへ順番に配置された複数のソフトウェアレイヤーで構成されている。それぞれのソフトウェアレイヤーは、少なくとも１つのソフトウェアモジュールを有している。さらに、ソフトウェアアーキテクチャは、１セットの定義された依存規則に従って、前記複数のソフトウェアレイヤーにおけるソフトウェアモジュール間の通信を可能にするインターフェース手段を有している。
【００１２】
本発明は、よりハイレベルサービスを提供するソフトウェアレイヤーからより低レベルサービスを提供するソフトウェアレイヤーへ順番に配置された複数のソフトウェアレイヤーにソフトウェアを構成する（organize）ことによって、かつ複数のレイヤーにおけるソフトウェアモジュールが通信できるようになる１セットの依存規則を定義することによって、ソフトウェアアーキテクチャにおける依存度を視覚化し理解することがより容易になるのである。同様に、このことにより、ソフトウェアを構成し、開発し、維持するだけでなく、ソフトウェアを更新し、変更することもより容易にできることになる。
【００１３】
本発明のさらなる利点及び具体的特徴は、添付図面と共に、下記詳細な説明からも明らかになるものである。
【発明を実施するための最良の形態】
【００１４】
図１は、無線通信システム用移動体端末のためのプラットフォームシステムを図示する、本発明を説明する際に一助となるブロック図である。プラットフォームシステムは、概ね参照番号１０によって示され、移動体端末プラットフォームアセンブリ１２とそれに搭載され、インストールされ、実行された１以上のアプリケーション（即ち、アプリケーションソフトウェア）１４を備える（ここで、”搭載され”の文言は、アプリケーションソフトウェアが例えばインターネットからダウンロードしたり、ハードウェアチップをインストールしたりすることを含む、インターフェースを介して移動体端末プラットフォームアセンブリのソフトウェアと結合され得るいかなるメカニズムをも含む意図で用いられている）。プラットフォーム１０は、点線１６で概ね示される移動体端末に組み込まれるようになっている。
【００１５】
移動体端末プラットフォームアセンブリ１２は、ソフトウェアサービスコンポーネント２２、ハードウェアコンポーネント２４及びインターフェースコンポーネント２６を有している。
【００１６】
ソフトウェアサービスコンポーネント２２は、インターフェースコンポーネント２６を介してユーザ達に提示される複数のサービスを提供するための複数の良く構成された機能ソフトウェアユニットを備えている。図１のプラットフォームシステムでは、複数のソフトウェアユニットは、ＵＭＴＳアクセスサービスソフトウェアスタック（stacks：積層）３６とデータ通信サービスソフトウェアスタック３２（後にもっと詳細に説明する）とＭＭＩ（マンマシーンインターフェース）サービスソフトウェアスタック３４とアプリケーションプラットフォームサービスソフトウェアスタック３６とオペレーション及びサービスソフトウェアスタック３８を含む、複数の垂直志向機能スタックを備えている。
【００１７】
ハードウェアコンポーネント２４は、それぞれの機能ソフトウェアスタックに関連し、それらによって制御される一組のハードウェアユニットを備えている。図１で示される具体的システムにおいて、ハードウェアユニットは、ＵＭＴＳアクセスサービスハードウェア４０とデータ通信サービスハードウェア４２とＭＭＩサービスハードウェア４４とアプリケーションプラットフォームサービスハードウェア４６とオペレーション及びサービスハードウェア４８を有する。
【００１８】
インターフェースコンポーネント２６は、特定の複数のアプリケーションを開発するための１以上のアプリケーションインターフェース（ＡＰＩ）オプションを有するミドルウェアサービスレイヤーを備えている。これらＡＰＩは、標準化された（非固有の）インターフェース、デファクトスタンダード化したインターフェース、及び／又は、オープン固有インターフェース（open native interfaces）を有している。例えば、標準化されたインターフェースは、ＭＩＤＰ／ＣＬＤＣ（Mobile Information Device Profile/Connected Limited Device Configuration：移動体情報デバイスプロファイル／接続された制限デバイス構成）に従ったＪ２ＭＥ（JAVA（登録商標）２マイクロエディション）環境を有するようにしてもよい。ミドルウェアサービスレイヤーはまた、１以上のインターフェースを介して複数のアプリケーションからアセンブリ１２を分離するように機能し、後述するように、他の複数のサービスを提供するものである。
【００１９】
プラットフォームシステム１０の移動体端末プラットフォームアセンブリ１２は、アプリケーションソフトウェア１４から分離された個別で密封されたユニットとして設計され、実施され（アセンブリされ）、テストされるようにされるものである（ここで、”アプリケーションソフトウェア”なる文言は、複数のユーザが使えるようにしたいと思う機能を提供するソフトウェアならどんなものでも用いることができる）。従って、ユーザ達（ここで、”ユーザ達”なる文言は、製造業者、エンドユーザ、他の顧客やユーザを含むものである）は、自分達自身のソフトウェアを開発し或いは取得し、プラットフォームシステム１０を完成させるために、そのソフトウェアを後で移動体端末プラットフォームアセンブリ１２に追加することができる。従って、移動体端末プラットフォームアセンブリ１２は、複数の異なるユーザ達に売られたり、譲渡されたりし得る。そして、そのユーザ達のそれぞれは、プラットフォームシステムに対する特定の複数の要求を満足させるために、自分自身のアプリケーションソフトウェアをアセンブリに搭載し、インストールし、実行することによってプラットフォームシステム１０を完成させることができる。
【００２０】
ソフトウェアサービスコンポーネント２２のソフトウェアスタック３０−３８及び関連するハードウェアユニット４０−４８は、明確に定義された機能及びインターフェースを有する管理可能な構成要素（ソフトウェアモジュールやハードウェアブロック）に構造化される機能的スタックを定義している。移動体端末プラットフォームアセンブリ１２のユーザは、機能的スタックの内部の詳細について関わる必要は無く、ミドルウェアサービスレイヤー２６を介してスタックにアクセスし、アプリケーションソフトウェアを設計するのに必要な機能を取得することができる。
【００２１】
図２は、本発明の理解をさらに助けるための図であって、図１移動体端末プラットフォームシステム１２の展開図を示している。図２に示されるように、移動体端末プラットフォームアセンブリ１２は、メインＣＰＵ５０で実行されるソフトウェアを介して制御される。そのメインＣＰＵは、マイクロプロセッサー、マイクロプログラマブルプロセッサ或いはＤＳＰ（デジタルシグナルプロセッサ）のような１以上のプロセッサで構成するようにしても良い。ＭＭＩソフトウェアサービススタック３４用のＤＳＰは、５２で図示されている。ソフトウェアコンポーネント２２のソフトウェアスタック３０−３８のそれぞれは、ハードウェアドライバーソフトウェア６０−６８を有し、各巣タックに関連したハードウェアユニットを動作させる。図２で示されるように、機能的ソフトウェアスタックによって制御されるハードウェアユニットの具体例は、受信機と送信機と電源と周波数制御器とＧＳＭ送受信機とブルートゥースモジュールと様々な通信・手動周辺機器とパワーマネージメントとＳＩＭインターフェースとメモリとセキュリティハードウェアとを有している。
【００２２】
さらに、プラットフォームシステム１０の特定の特徴や詳細は、参考として本願の内容をなす、共通の出願人による出願である米国特許出願（弁護士包袋番号５３８０７−０００４５ＵＳＰＴ）に記載されている。
【００２３】
移動体端末に組み込まれたソフトウェアは、通常、それぞれの転送インターフェース（exported interfaces）を呼び出すことによって他と通信する多くのソフトウェアモジュールで構成されるアーキテクチャ内にまとめられている。そのようなアーキテクチャの問題点は、クライアントをサーバーから分離する特定のルールがないということであり、このことによって、ソフトウェアがまとめられている方法を目に見えるようにすることが困難になるものである。結果として、現行のアーキテクチャスキームは、クライアントとサーバーとを同レベルの各モジュールにおいて機能的に融合させることになっている。そのような融合によって、ソフトウェアの構成、開発及び維持において深刻な問題が生じている。
【００２４】
本発明は、無線通信システム用移動体端末のためのソフトウェアアーキテクチャであって、その中で、ソフトウェアが容易に視覚化して理解することができるように、ソフトウェアが論理的方法でまとめられ、かつ１セットの定義された依存ルール（dependency rules）に従って通信できるソフトウェアアーキテクチャを提供する。
【００２５】
図３は、本発明の実施形態に係るソフトウェアアーキテクチャを図示するブロック図である。そのソフトウェアアーキテクチャは、参照番号１００によって概ね示されており、図３で示される実施形態では、ソフトウェアサービスコンポーネント１０２のソフトウェアと移動体端末プラットフォームアセンブリのミドルレイヤー１０４のソフトウェアとを備えている。図３に示されるように、図１及び２を参照して説明される複数の垂直的、機能的ソフトウェアスタック（２つの機能的ソフトウェアスタック１０６及び１０８は図３に示されている）にまとめられていることに加えて、ソフトウェアサービスコンポーネント１０２はまた、複数の水平的ソフトウェアレイヤーを定義するように配置され、ミドルウェアサービスレイヤー１０４のソフトウェア及びソフトウェアサービスコンポーネント１０２のソフトウェアは共に階層（layered）ソフトウェアアーキテクチャ１００を定義している。
【００２６】
本発明の実施形態に係るソフトウェアアーキテクチャは、複数の垂直区分ソフトウェアレイヤーを補足する複数の水平区分機能的ソフトウェアユニットを含む点において、ＩＳＯ／ＯＳＩ（ISO Open System Interconnection：ISOオープンシステム相互接続）標準化技術とは異なっている。その水平的区分は、独立のモジュラー（サービス）コンポーネントの作成に非常に役立つものとなっている。
【００２７】
ソフトウェアアーキテクチャ１００において、その複数の水平的ソフトウェアレイヤーは、より高いレベルのソフトウェアサービスレイヤーからより低いレベルのソフトウェアサービスレイヤーに降順に配置されている。最高レイヤーはミドルウェアサービスレイヤー１０４であり、そのレイヤ１０４は、上述したように、１以上のインターフェースを移動体プラットフォームアセンブリに供給し、また、それを用いて複数のアプリケーションからプラットフォームアセンブリを分離する。ミドルウェアサービスレイヤー１０４はまた、後述するように、複数のアプリケーションに他の周辺的環境的サービスを提供する。
【００２８】
ソフトウェアサービスコンポーネント１０２は、１以上のソフトウェアレイヤーを有し、様々なサービスをアプリケーションに供給する。供給されるレイヤーの数は、供給されることになるサービスに依存する。ソフトウェアサービスコンポーネント１０２は、いかなる所望数のレイヤーをも有することができる。図３の実施形態では、レイヤー１１２、１１４、１１６及び１１８ははっきりと図示されており、複数の付加的レイヤーを含むことができることについて、１２０の点線で図示されている。
【００２９】
ソフトウェアサービスコンポーネント１０２（よってソフトウェアアーキテクチャ１００の）の最下位レイヤー１１６の隣は、ハードウェアアブストラクションレイヤー（ＨＡＬ）を有し、ソフトウェアサービスコンポーネントの最下位レイヤー１１８は、バーシックシステムサービスレイヤー（ＢＳｙＳＬ）を備えている。ベーシックシステムサービスレイヤーは、移動体端末プラットフォームアセンブリの全モジュールによって必要とされる複数のサービスを含んでおり、ハードウェアアブストラクションレイヤーはハードウェア依存性を要約する（encapsulate）ものである。
【００３０】
ソフトウェアアーキテクチャ１００のソフトウェアは、複数のソフトウェアモジュール、例えばモジュール１２２、１２４及び１２６にまとめられている。ソフトウェアアーキテクチャの各ソフトウェアレイヤーは、１つから多数のソフトウェアモジュールを包含しているが、特定のレイヤー及び特定の垂直的機能的スタックにおける全ソフトウェアモジュールも、同レベルのアブストラクションを有しているであろう。さらに、単一のソフトウェアモジュールは、唯一の垂直的機能的スタック及びそのスタック内の唯一の水平的レイヤーに配置することができる。
【００３１】
各レイヤーにおける様々なモジュールは、そのレイヤーに対する機能カテゴリーごとに複数のインターフェースを実行する。これらのインターフェースは、各レイヤー用にソフトウェアバックプレイン（ＳｗＢＰ）に一緒に集約されており、モジュールの実現とは分離されている。特に、ソフトウェアモジュールとＳｗＢＰにおけるインターフェース間にはしっかりした接続（hard coupling）は存在しない。これにより、どんな特定のソフトウェアモジュール及び／又はインターフェースの実現でも、インターフェースに対するクライアントについて影響を与えることなく壽有に変更することができるようになる。図３では、ソフトウェアレイヤー１０４、１１２、１１４、１１６及び１１８のためのＳｗＢＰは、参照番号１３０、１３２、１３４、１３６及び１３８でそれぞれ指定されている。可能性ある付加的レイヤー１２０（点線で示されている）のためのＳｗＢＰは、参照番号１４０で指定されている。
【００３２】
ソフトウェアアーキテクチャ１００の様々なソフトウェアレイヤーにおける様々なソフトウェアは、１セットの定義された依存ルール（dependency rules）に従って通信できるようになっている。本発明の実施形態によれば、図４のチャート１５０で図示されるように、依存ルール（dependency rules）は次のようになっている。
【００３３】
−あるレイヤーにおけるモジュールは、それ自身のＳｗＢＰ或いは自身のレイヤーの      下にあるレイヤーにあるＳｗＢＰにおける複数のインターフェースに機能を呼び起      こすだけとしてもよい。
【００３４】
−あるソフトウェアモジュールは、モジュールが属するレイヤーとは独立であり、自      身のレイヤーの上にあるにおけるＳｗＢＰにおける複数のインターフェースに機能      を呼び起こすことは無いとしてもよい。
【００３５】
−あるソフトウェアモジュールは、同じ機能的スタックの自身のレイヤーのＳｗＢＰ      におけるインターフェースに機能を呼び起こすようにしてもよい。
【００３６】
−チャンネルイベントやデータストリームの方向には制限はない。それらはどの方向      に向かってもよい。
【００３７】
本発明の別の実施形態では、追加的依存ルール（dependency rules）が提供され、ソフトウェアモジュールが異なる機能的スタックにおける同じレイヤーの別のソフトウェアモジュールに機能を呼び起こすことができるようにしている。この追加的依存ルール（dependency rules）は、所定の実施形態では所望のものであり、複数の機能的スタックにおけるレイヤーの数を制限している。
【００３８】
上記依存ルール（dependency rules）によれば、ソフトウェアレイヤー間における厳格な依存性（hard dependencies）は、ソフトウェアアーキテクチャでは常に下向きである。イベントを受信するためにモジュールがいかにサブスクリプション（Subscription）を有していようとも、レイヤーを介した上向きへの通信はイベントによって操作される。それゆえに、より下位のレイヤー（イベント送信）におけるイベント検出器とより高位のレイヤー（イベント受信）におけるイベントユーザとの間に厳格な依存性は存在しない。それゆえに、下位レイヤーから高位レイヤーの独立性が確保させる。
【００３９】
移動体端末プラットフォームアセンブリを複数のレイヤーに構成する（organize）ことによって、及び、様々なレイヤーにおけるソフトウェアモジュールが通信する１セットの依存ルール（dependency rules）を定義することによって、ソフトウェアアーキテクチャは提供され、そこでは、ソフトウェアにおける依存性が容易に視覚化されて理解することができる。このことは多くの利点を提供してくれる。例えば、定義された依存ルール（dependency rules）と結合される水平的ソフトウェアレイヤーは、ソフトウェアを構成する際に重要なクライアントサーバー設計を強制的に開発者が行うようにする。また、より上位レイヤーが下位のレイヤーに影響を与えずに削除され得るので、アブストラクションレベルにおけるソフトウェアを構成するが容易にである。
【００４０】
スタックが機能により分類され、どんな特定のスタックでも他の機能的スタックの内部に影響を与えることなく削除することができるので、定義された依存ルール（dependency rules）と結合したソフトウェアレイヤー及び水平的機能スタックにより、機能におけるソフトウェアを構成することが容易になる。
【００４１】
レイヤーインプリメンテーション（モジュール）からレイヤーインターフェース（ＳｗＢＰ）を分離することは、モジュールがＳｗＢＰによって要約（encapsulate）されているので、モジュールインプリメンテーションの交換及びレイヤー内部の設計を簡略化している。これによりまた、インターフェースが不変である限りモジュールインプリメンテーションにおける変更がＳｗＢＰに何ら影響を与えないので、バージョン対応（handling）が簡略化される。
【００４２】
図５は、本発明の他の実施形態による図１及び２の移動体端末プラットフォームアセンブリ１２のためのソフトウェアアーキテクチャの特定のインプリメンテーションを図示するブロック図である。図５において、ソフトウェアアーキテクチャは参照番号２００によって指定され、ミドルウェアサービスレイヤー２６及びソフトウェアサービスコンポーネント２２のレイヤーを含む複数のレイヤーを備えている。各レイヤーは、例えばモジュール２３０、２３２及び２３４のように、少なくとも１つのモジュールを備えている。ソフトウェアサービスコンポーネント２２のレイヤーはアプリケーションサーバーレイヤー２０２を有してアプリケーションサービスを提供し、プラットフォームサービスレイヤー２０４を有して複数のアプリケーションのための複数の特定サービスを提供し、プラットフォームプロトコルレイヤー２０６を有してセッションプロトコルとアプリケーション特定プロトコルを提供し、トランスポートレイヤー２０８を有してオーディオアクセス／コントロール、データコムトランスポートプロトコル及びメッセージトランスポートプロトコルを提供し、データアクセスレイヤー２１０を有して外部データＩＦアクセス、構造ストレージサービス及び他の低レベルプラットフォームサポートサービスを提供し、論理的ドライバーレイヤー２１２及び物理ドライバーレイヤ２１４を有している。
【００４３】
論理的ドライバーレイヤー２１２は、移動体端末プラットフォームアセンブリのハードウェアとソフトウェアとの間の依存性を分離するハードウェアアブストラクションを構成する。唯一の物理的ドライバーレイヤーは、ハードウェアの詳細（即ち、ＡＳＩＣハードウェアにおけるどのレジスターがアドレス指定されているか）に関連するものである。論理的ドライバーレイヤー２１２は、論理的マッピングをハードウェアに提供する、即ち、このレイヤーは移動体端末プラットフォームアセンブリのハードウェアパーツ及びソフトウェアパーツ間におけるブリッジを提供するものである。
【００４４】
ミドルウェアサービスレイヤー２６は、アプリケーション開発のための一定範囲の異なるアプリケーション環境を提供し、サポートするものである。各アプリケーション環境は、それ自身の特徴を有し、次のように定義される。
【００４５】
−状態アプリケーション（way applications）が開発される（言語サポート、編集及      び関連をプログラミングする）
−状態アプリケーションが実行される（例えば、解釈或いは固有コードの実行）
−設けられる機能的サービス
−使用時に可能性ある制限
【００４６】
複数のアプリケーション環境代替案を提供することによって、コスト、使い勝手、市場導入時間、機能セット、サイズ、携帯性等の様々な需要を有する広範囲な製品が促進される。図５に示されるように、ミドルウェアレイヤーによって設けられるそのような環境には、ＪＡＶＡ（登録商標）  ＥＸＥ環境ドメイン、オープンアプリケーションフレームワーク（ＯＡＦ）ドメイン及びオープンプラットフォームＡＰＩ（ＯＰＡ）ドメインが含まれる。
【００４７】
ミドルウェアサービスレイヤーの更なる特徴及び詳細については、共通の出願人による、本願の内容をなす同時係属ＵＳ特許出願番号（弁護士包袋番号５３８０７−０００２４ＵＳＰＴ）に記載されている。
【００４８】
図５に示されるように、様々なレイヤーの様々なモジュール間の通信は、例えばＳＷＢＰ２２２，２２４，２２６及び２２８のようなソフトウェアバックプレインを介して達成される。
【００４９】
前述した通り、移動体端末プラットフォームアセンブリのソフトウェアサービスコンポーネント２２は、データ通信サービスソフトウェアスタック３２を有している。本発明の実施形態によれば、データ通信サービスソフトウェアスタック３２は、様々なデータ通信サービスを提供し、そのようなサービスを提供するためにインターネットプロトコル（ＩＰ）、遠距離通信デバイスプロトコル、ダイアルアップネットワーキング及びリンク操作プロトコル、及びインターフェース多重化プロトコルを含む様々なプロトコルをサポートする。データ通信サービスソフトウェアスタックによって提供される多数のサービスには、移動体端末をＰＣに接続することに関連するサービス（例えば、ブルートゥース、ＩｒＤＡ、ＵＳＢ及びそのようなものを介してのオブジェクト交換のようなオブジェクト交換のためのもの）、ＰＣを移動体端末を介してインターネットに接続することに関連するサービス（例えば、ダイアルアップネットワーキングのためのもの）、移動体端末をインターネットに接続することに関連するサービス（例えば、ＷＡＰ、Ｅメール、マルチメディアのストリーミング、及びインターネットのファイルダウンロードのようなもの）、及び移動体端末を別の移動体端末に接続することに関連するサービス（例えば、ビデオ会議や他の目的のためのもの）が含まれる。
【００５０】
図６は、プロトコルマッピング、特に、本発明の実施形態によるＧＳＭ回線切り換えデータに亘ってブルートゥースを介してダイアルネットワーキングのためのプロトコルマッピング２５０の一例を図示するブロック図である。ＧＳＭ回線切り換えデータに関し、移動体端末は、エアーインターフェース上で無線リンクプロトコル（ＲＬＰ）を使用する。ＲＬＰは再転送メカニズムによってエラーフリーのデータ転送を保証するものである。ＲＬＰは、前方エラー訂正（ＦＥＣ:Forward Error Correction）を活用して転送中のビットエラーを処理するものである。レイヤー２中継符号志向プロトコル（Ｌ２ＲＣＯＰ：Layer2 Relay Character Oriented Protocol）がＲＬＰの最後部で用いられ、Ｖ４２ｂｉｓを実現する。
【００５１】
データ通信サービスソフトウェアスタック３２は、移動体端末プラットフォームアセンブリのソフトウェアアーキテクチャにおける様々なモジュールを外界に接続するように作用する。それ（スタック３２）は、ロードマップを提供し、それによってモジュールは容易に識別することができる。例えば、あるスタンダードにおいて変更がある場合、特有のモジュール又はスタンダード変更によって影響を受けるモジュールは、それらを変更することができるように速やかに識別することができる。
【００５２】
図７は、本発明の別の実施形態によるソフトウェアアーキテクチャを構成する方法の工程を図示するフローチャートである。本方法は参照番号３００によって概ね指定され、より高位のレベルのサービスを提供するソフトウェアレイヤーからより低位レベルのサービスを提供するソフトウェアレイヤーに順番に配置される複数のソフトウェアレイヤーにソフトウェアを構成する（organize）工程（ステップ３０２）を有している。好ましくは、この構成する（organize）工程はまた、少なくとも１つの機能的ソフトウェアスタックにソフトウェアを構成する工程を有している。その方法はさらに、１セットの定義された依存ルール（dependency rules）に従って複数のソフトウェアレイヤー間の通信を可能にするためのインターフェース手段を提供する工程（ステップ３０４）を有している。
【００５３】
今まで記述してきたことは本発明の実施形態を構成するが、発明はそこから逸脱しない限り多くの方法で可変であると認識すべきである。例えば、本発明によるソフトウェアアーキテクチャは、各レイヤーに１以上のモジュールを有する複数の水平的レイヤーを備えるものとして説明してきたが、特有のモジュールがそれ自身、複数のレイヤーに配置される複数のサブモジュールを備えるものと理解すべきである。また、水平的機能的スタックの数及び性質は、特有のアプリケーションのために所望な様にかつ必要に応じて変更可能である。さらに、そのソフトウェアアーキテクチャは、第３世代セルラー電話通信システム用の移動体端末に基本的に用いられるように説明されてきたが、そのアーキテクチャはまた、第２世代や他のセルラー電話通信システムにも、例えばブルートゥースシステムのような他の無線通信システム及び他のアプリケーションにおいても用いることができる。一般的に、本発明のソフトウェアアーキテクチャは、複雑なソフトウェアシステムを開発する際に特に適するものである。本発明は多数の方法で変更することができるので、発明は添付特許請求の範囲によって要求される範囲においてのみ限定されるものと理解すべきものである。
【図面の簡単な説明】
【００５４】
【図１】図１は、本発明の説明を助ける、無線通信システム用移動体端末のためのプラットフォームシステムを図示するブロック図である。
【図２】図２は、本発明の説明をさらに助ける、図１のプラットフォームシステムの移動体端末プラットフォームアセンブリの展開図を示すブロック図である。
【図３】図３は、本発明の実施形態による、ソフトウェアアーキテクチャを図示するブロック図である。
【図４】図４は、本発明の別の実施形態による、図３のソフトウェアアーキテクチャの姐Ｈとウェアモジュールが通信する１セットの依存ルール（dependency rules）を図示するチャートである。
【図５】図５は、本発明の別の実施形態による、図１及び２の移動体端末プラットフォームアセンブリのためのソフトウェアアーキテクチャの特定のインプリメンテーションを図示するブロック図である。
【図６】図６は、本発明の実施形態による、プロトコルマッピング、特に、本発明の実施形態によるＧＳＭ回線切り換えデータに亘ってブルートゥースを介してダイアルネットワーキングのためのプロトコルマッピング２５０の一例を図示するブロック図である。
【図７】図７は、本発明の別の実施形態によるソフトウェアアーキテクチャを構成する方法の工程を図示するフローチャートである。
【図１】
2005526308.tif 000002
【図２】
2005526308.tif 000003
【図３】
2005526308.tif 000004
【図４】
2005526308.tif 000005
【図５】
2005526308.tif 000006
【図６】
2005526308.tif 000007
【図７】
2005526308.tif 000008
【国際調査報告】
2005526308.tif 000009
2005526308.tif 000010
2005526308.tif 000011
2005526308.tif 000012
2005526308.tif 000013