(57)【要約】【課題】汎用アプリケーションプログラムインタフェースを提供するためのシステム及び方法を提供する。【解決手段】アプリケーションプログラムインタフェース（ＡＰＩ）に関連するシステム及び方法。本方法は、アプリケーションを汎用ＡＰＩにアタッチするコンピュータに実施された方法に関連している。本方法は、アプリケーションによってトリガされたマッピング要求をＡＰＩに受け取る段階と、ＡＰＩに登録されたマッピングモジュール群から１つ又はそれよりも多くの候補マッピングモジュールを選択する段階と、アプリケーションと１つ又はそれよりも多くのマッピングモジュールの間の関連を示す情報及び規則の少なくとも１つにアクセスする段階と、情報及び規則に基づいてアプリケーションと共に用いるための１つ又はそれよりも多くのターゲットマッピングモジュールを選択する段階とを含む。【選択図】図２
2008501173.tif 000002
【特許請求の範囲】
【請求項１】
汎用アプリケーションプログラムインタフェース（ＡＰＩ）を用いてアプリケーションをマッピングモジュールにアタッチする、コンピュータにおいて実施される方法であって、
ａ）アプリケーションによってトリガされたマッピング要求をＡＰＩに受け取る段階と、
ｂ）前記ＡＰＩに登録されたマッピングモジュールの群から１つ又はそれよりも多くの候補マッピングモジュールを選択する段階と、
ｃ）前記アプリケーションと１つ又はそれよりも多くのマッピングモジュールとの間の関連を示す情報及び規則の少なくとも１つにアクセスする段階と、
ｄ）前記情報及び規則の少なくとも１つに基づいて、前記アプリケーションと共に用いるための１つ又はそれよりも多くのターゲットマッピングモジュールを選択する段階と、
を含むことを特徴とする方法。
【請求項２】
段階ｂ）は、所定の組の規則を適用する段階を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記所定の組の規則は、アプリケーションタイプの前記候補マッピングモジュールとの関連を含むことを特徴とする請求項２に記載の方法。
【請求項４】
段階ｃ）は、内部制御インタフェースを通じてシステムデータを取り出す段階を含むことを特徴とする請求項１に記載の方法。
【請求項５】
段階ｃ）は、データベースから規則を取り出す段階を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項５に記載の方法。
【請求項７】
前記規則は、前記ＡＰＩ内の所定の規則を含むことを特徴とする請求項５に記載の方法。
【請求項８】
１つ又はそれよりも多くのターゲットマッピングモジュールを選択する前記段階に基づいて、前記汎用ＡＰＩの演算を特定の実装にマップして関連付ける段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項９】
１つ又はそれよりも多くのＡＰＩ機能の管理に関するデータを取得するために１つ又はそれよりも多くの管理アプリケーションにアクセスする段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記アクセスする段階は、前記１つ又はそれよりも多くの管理アプリケーションにアクセスするために管理ＡＰＩモジュールを用いる段階を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
管理ＡＰＩモジュールは、前記ＡＰＩ内に収容されていることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記アプリケーションと、段階ｄ）で選択された１つ又はそれよりも多くのターゲットマッピングモジュールとの間の関連を記録するためにモジュールレジストリを更新する段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記情報及び規則は、動的に更新されるようになっていることを特徴とする請求項１に記載の方法。
【請求項１４】
前記情報及び規則は、実行時に構文解析されるテキストベースの符号化を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記情報及び規則は、実行時に構文解析されるバイナリベースの符号化を含むことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記情報及び規則は、演算を前記１つ又はそれよりも多くのマッピングモジュールに対する擬似演算に関連付けることを特徴とする請求項１に記載の方法。
【請求項１７】
ａ）アプリケーションによってトリガされたマッピング要求を受け取り、
ｂ）登録されたマッピングモジュールの群から１つ又はそれよりも多くの候補マッピングモジュールを選択し、
ｃ）前記アプリケーションと１つ又はそれよりも多くのマッピングモジュールとの間の関連を示す情報及び規則の少なくとも１つにアクセスし、
ｄ）前記情報及び規則の少なくとも１つに基づいて、前記アプリケーションと共に用いるための１つ又はそれよりも多くのターゲットマッピングモジュールを選択する、
方法段階を機械に実行させるための機械可読プログラムコード、
を含むことを特徴とするプログラム製品。
【請求項１８】
段階ｂ）は、所定の組の規則を適用する段階を含むことを特徴とする請求項１７に記載のプログラム製品。
【請求項１９】
前記所定の組の規則は、アプリケーションタイプの前記候補マッピングモジュールとの関連を含むことを特徴とする請求項１８に記載のプログラム製品。
【請求項２０】
段階ｃ）は、内部制御インタフェースを通じてシステムデータを取り出す段階を含むことを特徴とする請求項１７に記載のプログラム製品。
【請求項２１】
段階ｃ）は、データベースから規則を取り出す段階を含むことを特徴とする請求項１７に記載のプログラム製品。
【請求項２２】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項２１に記載のプログラム製品。
【請求項２３】
前記規則は、ＡＰＩ内の所定の規則を含むことを特徴とする請求項２１に記載のプログラム製品。
【請求項２４】
１つ又はそれよりも多くのターゲットマッピングモジュールを選択する前記段階に基づいて、汎用ＡＰＩの演算を特定の実装にマップして関連付ける、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項１７に記載のプログラム製品。
【請求項２５】
１つ又はそれよりも多くのＡＰＩ機能の管理に関するデータを取得するために１つ又はそれよりも多くの管理アプリケーションにアクセスする、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項１７に記載のプログラム製品。
【請求項２６】
前記アクセスする段階は、前記１つ又はそれよりも多くの管理アプリケーションにアクセスするために管理ＡＰＩモジュールを用いる段階を含むことを特徴とする請求項２５に記載のプログラム製品。
【請求項２７】
管理ＡＰＩモジュールは、前記ＡＰＩ内に収容されていることを特徴とする請求項２６に記載のプログラム製品。
【請求項２８】
前記アプリケーションと、段階ｄ）で選択された１つ又はそれよりも多くのターゲットマッピングモジュールとの間の関連を記録するためにモジュールレジストリを更新する、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項１７に記載のプログラム製品。
【請求項２９】
前記情報及び規則は、動的に更新されるようになっていることを特徴とする請求項１７に記載のプログラム製品。
【請求項３０】
前記情報及び規則は、実行時に構文解析されるテキストベースの符号化を含むことを特徴とする請求項２９に記載のプログラム製品。
【請求項３１】
前記情報及び規則は、実行時に構文解析されるバイナリベースの符号化を含むことを特徴とする請求項２９に記載のプログラム製品。
【請求項３２】
前記情報及び規則は、演算を前記１つ又はそれよりも多くのマッピングモジュールに対する擬似演算に関連付けることを特徴とする請求項１７に記載のプログラム製品。
【請求項３３】
１つ又はそれよりも多くのアプリケーションに関連付けられたマッピングモジュールの取り付け、切り離し、及び追跡を管理するモジュールレジストリと、
アプリケーションによってトリガされたマッピング要求に応答して、前記マッピングモジュールの１つ又はそれよりも多くを選択することを容易にするマッピングモジュールセレクタと、
を含むことを特徴とする「アプリケーションプログラムインタフェース（ＡＰＩ）」システム。
【請求項３４】
前記マッピングモジュールセレクタは、所定の組の規則を適用するようになっていることを特徴とする請求項３３に記載のシステム。
【請求項３５】
前記所定の組の規則は、１つ又はそれよりも多くの候補マッピングモジュールとのアプリケーションタイプの関連を含むことを特徴とする請求項３４に記載のシステム。
【請求項３６】
前記マッピングモジュールセレクタは、内部制御インタフェースを通じてシステムデータを取り出すようになっていることを特徴とする請求項３３に記載のシステム。
【請求項３７】
前記マッピングモジュールセレクタは、データベースから規則を取り出すようになっていることを特徴とする請求項３３に記載のシステム。
【請求項３８】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項３５に記載のシステム。
【請求項３９】
１つ又はそれよりも多くのアプリケーションプログラムと、
前記アプリケーションプログラムを実行するプロセッサと、
前記１つ又はそれよりも多くのアプリケーションに関連付けられたマッピングモジュールの取り付け、切り離し、及び追跡を管理するモジュールレジストリ、及び
アプリケーションによってトリガされたマッピング要求に応答して、前記マッピングモジュールの１つ又はそれよりも多くを選択することを容易にするマッピングモジュールセレクタ、
を含むアプリケーションプログラムインタフェース（ＡＰＩ）と、
を含むことを特徴とする電子装置。
【請求項４０】
前記マッピングモジュールセレクタは、所定の組の規則を適用するようになっていることを特徴とする請求項３９に記載の電子装置。
【請求項４１】
前記所定の組の規則は、１つ又はそれよりも多くの候補マッピングモジュールとのアプリケーションタイプの関連を含むことを特徴とする請求項４０に記載の電子装置。
【請求項４２】
前記マッピングモジュールセレクタは、内部制御インタフェースを通じてシステムデータを取り出すようになっていることを特徴とする請求項３９に記載の電子装置。
【請求項４３】
前記マッピングモジュールセレクタは、データベースから規則を取り出すようになっていることを特徴とする請求項３９に記載の電子装置。
【請求項４４】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項４３に記載の電子装置。
【請求項４５】
前記電子装置は、モバイル装置であることを特徴とする請求項３９に記載の電子装置。
【請求項４６】
イベントを１つ又はそれよりも多くのアプリケーションに関連付ける、コンピュータにおいて実施される方法であって、
ａ）各モジュールがＡＰＩ実装を示す１つ又はそれよりも多くのアクティブマッピングモジュールにイベントが関連付けられているか否かを判断する段階と、
ｂ）前記１つ又はそれよりも多くのアクティブマッピングモジュールに関連付けられた１つ又はそれよりも多くのアプリケーションを識別する段階と、
ｃ）前記１つ又はそれよりも多くのアプリケーションに前記イベントを通知する段階と、
を含むことを特徴とする方法。
【請求項４７】
前記イベントは、マッピングモジュールの取り付け及び切り離しのうちの少なくとも一方であることを特徴とする請求項４６に記載の方法。
【請求項４８】
前記イベントは、アプリケーションによって発生することを特徴とする請求項４６に記載の方法。
【請求項４９】
ｄ）前記イベントに基づいて前記アプリケーションの機能性を実行する段階、
を更に含むことを特徴とする請求項４６に記載の方法。
【請求項５０】
ａ）各モジュールがＡＰＩ実装を示す１つ又はそれよりも多くのアクティブマッピングモジュールにイベントが関連付けられているか否かを判断し、
ｂ）前記１つ又はそれよりも多くのアクティブマッピングモジュールに関連付けられた１つ又はそれよりも多くのアプリケーションを識別し、
ｃ）前記１つ又はそれよりも多くのアプリケーションに前記イベントを通知する、
方法段階を機械に実行させるための機械可読プログラムコード、
を含むことを特徴とするプログラム製品。
【請求項５１】
前記イベントは、マッピングモジュールの取り付け及び切り離しのうちの少なくとも一方であることを特徴とする請求項５０に記載のプログラム製品。
【請求項５２】
前記イベントは、アプリケーションによって発生することを特徴とする請求項５０に記載のプログラム製品。
【請求項５３】
ｄ）前記イベントに基づいて前記アプリケーションの機能性を実行する、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項５０に記載のプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエアに関する。より具体的には、本発明は、汎用アプリケーションプログラムインタフェースを提供するためのシステム及び方法に関する。
【背景技術】
【０００２】
アプリケーションプログラムは、文書の起草、他者との通信、プレゼンテーションの準備、情報探索などを含む多種多様なタスクを実行する機能を有するコンピュータ装置を提供する。アプリケーションプログラムは、実行された時にコンピュータを所定の方法で挙動させる編成された命令のリストである。アプリケーションプログラムを実行に向けて準備するための処理は、実装環境言語に応じてアセンブラ、コンパイラ、解釈プログラム、又は変換プログラムの使用を含むことができる。
【０００３】
「アプリケーションプログラムインタフェース（ＡＰＩ）」は、サポートシステム又はネットワークサービスにアクセスするためにアプリケーションプログラムによって参照することができるソフトウエア呼び出し及びルーチンの形式化されたセットである。ＡＰＩは、コンピュータオペレーティングシステム又はアプリケーションプログラムによって規定される特定の方法であり、それによってプログラマーは、アプリケーションプログラムを書く際にオペレーティングシステム又は別のアプリケーションプログラムの要求を行う。ＡＰＩはまた、一般的に、オペレーティングシステム又は別のアプリケーションプログラムから要求を受け取り、これらの要求を適切なアプリケーションプログラムに経路指定する。
【０００４】
オペレーティングシステムは、周辺ハードウエアへのインタフェースを処理し、タスクをスケジュール化し、メモリを割り当て、アプリケーションプログラムが実行されていない時にはデフォルトインタフェースをユーザに呈示する、コンピュータ上にインストールされた低レベルのソフトウエアである。カーネルは、リソースの割り当て、低レベルのハードウエアとのインタフェース、セキュリティなどを担うオペレーティングシステムの核心部である。オペレーティングシステムは、まとめてＡＰＩとして公知である機能を用いることによってアプリケーションプログラムに対してリソースを利用可能にする。この機能は、多くの場合に、アプリケーションプログラマーにどのリソース又はサービスが提供されるかによってグループ分けされる。すなわち、例えば、ＡＰＩは、コンピュータシステムのセキュリティサービスに関連する場合がある。例えば、「セキュリティサービスＡＰＩ」は、認証、メッセージ保全性保護、及びメッセージ秘密保護を実行するセキュリティ機構の上に抽象化層を設けることにより、基本的な様々な暗号機構の上にセキュリティサービスへの一様なアクセスをアプリケーションプログラマーに提供する。
【０００５】
アプリケーションプログラムは、個々のＡＰＩ機能を呼び出すことによってリソースを要求する。ＡＰＩ機能はまた、オペレーティングシステムによって提供されたメッセージ及び情報をアプリケーションプログラムに中継して戻す手段としての役割を果たすことができる。ＡＰＩは、ソースコードレベルで定義され、１つの機械から別の機械へのコードの移植性を保証し、すなわち、プラットフォーム独立性を提供するために、アプリケーションプログラムとカーネル又は他のアプリケーションプログラムとの間に抽象化レベルを提供する。ＡＰＩはまた、高レベル言語と、高レベル言語によってサポートされた呼び出しの規則を考慮しないで書かれた低レベルユーティリティ及びサービスとの間のインタフェースを提供することができる。この場合には、ＡＰＩの主要タスクは、１つのフォーマットから別のものへのパラメータリストの変換、並びに一方向又は双方向の値呼び及び参照渡し引数の解釈とすることができる。呼び出し規則は、インタフェースを通じて転送されたデータが適正パラメータにマップされるような手順又は関数呼び出しのための引数の配置である。異なるプログラミング言語は、引数がスタック上に押し込まれるか、又は左から右又は右から左の順序でレジスタに入力されることを必要とする場合があり、呼び出し元又は呼び出し先のいずれかが適正なシーケンスでスタック又はレジスタからの引数の除去を担うであろう。呼び出し規則はまた、可変数の引数が許可されるかを判断する。
【０００６】
ＡＰＩは、特定の基本的必要性を満たすための共通の機能性を提供する。ＡＰＩの使用は、ＡＰＩがインタフェースで接続する未知のオペレーティングシステム又はアプリケーションプログラムである場合があるものに対する共通のインタフェースを提供することにより、アプリケーションプログラムのプログラミング時間を低減し、信頼性を増大する。すなわち、ＡＰＩは、異なるソフトウエア及びハードウエア構成を有する異なるコンピュータ装置にわたってアプリケーションプログラムからの複雑さを隠蔽し、その移植性及び広範囲にわたる使用を提供する。
【０００７】
汎用ＡＰＩは、特定の基本的必要性を満たすために実装された共通機能性を提供する。これらの汎用ＡＰＩは、特定のアプリケーション実装に対して共通の開始点を提供し、従って、プログラミング時間を低減し、汎用ＡＰＩにから構築された特定の実装の信頼性を増大する。過去において、汎用ＡＰＩは、産業グループによって特定の応用分野を満たすために開発されたものである。例えば、「汎用セキュリティサービスアプリケーションプログラムインタフェース（ＧＳＳ−ＡＰＩ）」は、アプリケーションプログラマーに様々な基本的な暗号機構の上にセキュリティサービスへの一様なアクセスを提供する。「ＧＳＳ−ＡＰＩ」は、認証、メッセージ保全性保護、及びメッセージ秘密保護を実行するセキュリティ機構の上に抽象化層を提供する。「ＧＳＳ−ＡＰＩ」は、呼び出し元のアプリケーションが本人ＩＤを認証し、ピアに権限を委任し、メッセージ毎のベースで機密性及び保全性のようなセキュリティサービスを適用することを可能にする。
【０００８】
しかし、必要なものは、あらゆる実装環境をセキュリティサービスのような特定のアプリケーション分野だけではなく汎用ＡＰＩにアタッチする共通の方法である。同じ目的に対して利用可能ないくつかの実装環境がある場合に、特定のＡＰＩ実装を選択する共通の方法が更に必要とされている。
【０００９】
上記に加えて、汎用インタフェースが、異なりかつ独立したソフトウエア調節実装のモジュラー使用を可能にする場合には、異なる実装の複数のアトミック又は可逆演算を含むこのインタフェースを通じたトランザクションを提供する機能の必要性が存在するであろう。しかし、現在利用可能なソフトウエアモジュール実装環境に従ってトランザクションを動的に作成するための利用可能な機構は現存しない。
【発明の開示】
【００１０】
本発明の例示的な実施形態は、アプリケーションを汎用「アプリケーションプログラムインタフェース（ＡＰＩ）」にアタッチするコンピュータに実装された方法に関する。本方法は、アプリケーションによってトリガされたマッピング要求をＡＰＩに受け取る段階と、ＡＰＩに登録されたマッピングモジュール群から１つ又はそれよりも多くの候補マッピングモジュールを選択する段階と、アプリケーションと１つ又はそれよりも多くのマッピングモジュールの間の関連を示す情報及び規則の少なくとも１つにアクセスする段階と、情報及び規則に基づいてアプリケーションと共に用いるための１つ又はそれよりも多くのターゲットマッピングモジュールを選択する段階とを含む。
【００１１】
本発明の別の実施形態は、「アプリケーションプログラムインタフェース（ＡＰＩ）」システムに関する。このシステムは、１つ又はそれよりも多くのアプリケーションに関連付けられたマッピングモジュールの取り付け、切り離し、及び追跡を管理モジュールレジストリと、アプリケーションによってトリガされたマッピング要求に応答してマッピングモジュールの１つ又はそれよりも多くの選択を容易にするマッピングモジュールセレクタとを含む。
【００１２】
本発明の別の実施形態は、１つ又はそれよりも多くのアプリケーションプログラムと、アプリケーションプログラムを実行するプロセッサと、アプリケーションプログラムインタフェース（ＡＰＩ）とを有する電子装置に関する。ＡＰＩは、１つ又はそれよりも多くのアプリケーションに関連付けられたマッピングモジュールの取り付け、切り離し、及び追跡を管理するモジュールレジストリと、アプリケーションによってトリガされたマッピング要求に応答してマッピングモジュールの１つ又はそれよりも多くの選択を容易にするマッピングモジュールセレクタとを含む。
【００１３】
本発明は、従来のシステムを超えるいくつかの恩典を提供する。例えば、本発明は、単一のソフトウエア実装環境内又は複数の実装環境の間のいずれかにおいてトランザクションを動的に作成するための汎用機構を提供する。本発明のソフトウエア実装は、トランザクションの概念に対応する必要はない。トランザクションは、環境又は必要性が変更された時に「オンザフライ」で修正することができ、更に動的に修正することができる。最後に、本発明により、一般的なＡＰＩによって提供されるサービスは、取巻く環境（すなわち、登録ソフトウエアモジュール）に自動的かつ透過的に適応される。
【００１４】
本発明の他の主要な特徴及び利点は、以下の図面、詳細説明、及び特許請求の範囲を考察することにより当業者には明らかになるであろう。
【００１５】
同じ番号が同じ要素を示す図面を参照して、これより例示的な実施形態を説明する。
【発明を実施するための最良の形態】
【００１６】
ＡＰＩは、アプリケーションとカーネル又は他のアプリケーションプログラムとの間、並びにアプリケーションと低レベルのユーティリティ及びサービスとの間の一定レベルの抽象化をもたらし、それによって１つのコンピュータ装置から別のものへの移植を容易にする。ＡＰＩは、オペレーティングシステム、アプリケーションプログラム、又はシステムサービスの詳細を把握する必要なしにオペレーティングシステム、別のアプリケーションプログラム、又はシステムサービスとのインタフェースを定義するために、アプリケーションプログラムを書く際にプログラマーによって用いられる。これらの要素は、異なる形式で実装することができるが、プログラマーは、インタフェースに注意するだけでよい。すなわち、プログラマーは、ＡＰＩへの入力として必要とされる情報、及びＡＰＩからの出力である情報に集中する。
【００１７】
汎用ＡＰＩは、少数の非常に一般化した演算及びパラメータを提供する一般化したＡＰＩである。これらの演算は、一般的に、以下に限定されるものではないが、エラーコードを発生させて処理する演算、及びモジュール又はＡＰＩがイベントを発生させたことをアプリケーションに通知する汎用イベントサービスを含む。ＡＰＩは、１組の実装環境特定のパラメータを供給する汎用部分を提供することができる。
【００１８】
サービス品質（ＱｏＳ）は、ネットワーク管理者が自身の既存のリソースを効率的に用い、ネットワークを急いで拡大するか又は更には過供給する必要なく重要なアプリケーションが高品質サービスを受け取ることを保証することを可能にする。ＱｏＳは、ネットワーク全体にわたって演算を行い、帯域幅のようなリソースをアプリケーションに割り当てる。この割り当ては、一部のアプリケーションに他種のアプリケーションに対する優先権を与えることによって判断される。ＱｏＳは、管理者に自身のネットワーク上に制御機能を与え、結果として管理者の顧客により良いサービスを提供する機能を与える。例えば、不可欠なアプリケーションには、許容範囲の時間内でトランザクションを完了させるためにリソースを保証することができる。何らかのレベルのＱｏＳを要求するアプリケーションは、大まかに定性的アプリケーション又は定量的アプリケーションのいずれかとして分類することができる。定量的アプリケーションは、自体がどれ程のＱｏＳを必要とするかについて明白な要件を有する。定性的アプリケーションは、何らかのレベルのＱｏＳを要求するが、これらが正確に機能するためにどれ程必要とするかをネットワーク管理者が判断する必要がある。定量的アプリケーションの２つの一般的な種類は、映像ストリーミング及びＩＰ電話通信である。映像ストリーミングは、パケット損失が画像を劣化させることにならないように十分な帯域幅を必要とする。また、映像ストリーミングは、低容量リンクのようなネットワークのいくつかの部分を明確に識別することができることが望ましい。例えば、「ＭＰＥＧ−２」ストリーミングは、毎秒４メガビット（Ｍｂｐｓ）の帯域幅を必要とする可能性がある。ＩＰ電話通信は、遅延不許容アプリケーションの典型例である。会話がその実時間性を維持しない限り、ユーザの立場からすると、このサービスは使用不能である。定性的アプリケーションは、何らかのレベルのＱｏＳを要求するが、これらの要件が満たされることになる方法を管理者が判断すべきである。ＳＡＰのようなＥＲＰアプリケーションがこのカテゴリに当て嵌まる。これらのアプリケーションが生じさせるトラフィックは、連続的な流れでは発生しないが、ある一定の期間にわたって発生する一連のトランザクションである。共通した要件は、例えば、トランザクションの群が１秒に発生するような何らかの種類の遅延保証である。この要件が満たされる方法は、管理者次第である。
【００１９】
図１は、本発明の実施形態によるＡＰＩを実装することができるシステムを例示している。システム２０は、コンピュータシステム、又はプロセッサ及びオペレーティングシステムを収容するいくつかの装置のいずれかとすることができる。システム２０は、プロセッサ自体内に含まれる他の命令に加えて、１つ又はそれよりも多くのアプリケーションプログラム２４、ＡＰＩ２６、他の装置、モジュール、又は他のソフトウエアからの命令を実行するプロセッサ２２を含む。アプリケーションプログラム２４は、ユーザが、モバイル装置のような端末がアプリケーションプログラム２４を起動することを要求した後に、実行に向けて開くことができる。アプリケーションプログラム２４及びＡＰＩ２６は、同じプロセッサ２２によって実行することができる。代替的に、アプリケーションプログラム２４及びＡＰＩ２６は、異なるプロセッサによって実行されてもよい。アプリケーションプログラム２４及びＡＰＩ２６は、高レベル言語、スクリプト言語、アセンブリ言語などを含む同じか又は異なるコンピュータ言語で書くことができるが、コンピュータ言語は、これらに制限されてはいない。更に、アプリケーションプログラム２４及びＡＰＩ２６の演算は、専用コンピュータ、論理回路、又はハードウエア回路によって実行することができる。従って、アプリケーションプログラム２４及び２６は、ハードウエア、ファームウエア、ソフトウエア、又は３つの方法のあらゆる組合せによって実装することができる。
【００２０】
図２は、本発明の実施形態によるＡＰＩの構成を例示している。この構成では、ＡＰＩ２６は、アプリケーションプログラム２４のための適切な実装の管理及び選択に関する特定機能の演算を容易にする様々な構成要素を含む。アプリケーションプログラム２４及び管理アプリケーション３２のようなアプリケーションは、ＡＰＩ２６の視点のみから見たアプリケーションである。例えば、アプリケーション２４及び３２は、ウェブブラウザのような従来のアプリケーション、又はデータリンク又はネットワーク層のような「開放型システム間相互接続（ＯＳＩ）」層におけるソフトウエアコンポーネントとすることができる。
【００２１】
ＡＰＩ２６は、汎用サービスセットを提供するための汎用演算モジュール２８を含む。上述のように、そのようなサービスは、コンテンツ特定のサービスとすることができる。汎用演算モジュール２８は、これらのサービスをアプリケーションプログラム２４のような１つ又はそれよりも多くのアプリケーションプログラムに対して利用可能にする。
【００２２】
管理ＡＰＩモジュール３０は、ＡＰＩ２６内に設けられる。ＡＰＩ２６によって提供される様々な機能の管理に対してＡＰＩ２６が要求することができるデータを入力するために、管理ＡＰＩモジュール３０は、管理アプリケーション３２のような１つ又はそれよりも多くの管理アプリケーションとインタフェースで接続する。
【００２３】
例示したＡＰＩ２６の実施形態は、アプリケーションプログラム２４の実装の管理及び選択のためのサポートを提供する。一実施形態では、ＡＰＩ２６は、様々な管理及び選択機能を実行するためのルーチンを含む。具体的には、例示した実施形態は、マッピングモジュールレジストリ３６、マッピングモジュール選択４０、及びマッピングサポート４２に対するルーチンを含む。様々な実装は、各実装に関連付けられた１つ又はそれよりも多くのマッピングモジュール３８ａ〜ｃを通じて表すことができる。
【００２４】
マッピングモジュールレジストリルーチン３６は、マッピングモジュール３８ａ〜ｃの管理を提供する。図５及び６を参照して下記に詳述するように、例えば、マッピングモジュールレジストリルーチン３６は、マッピングモジュール３８ａ〜ｃの取り付け及び切り離しを管理することができる。この点に関して、登録されたマッピングモジュール３８ａ〜ｃとアプリケーションプログラム２４のようなアプリケーションプログラムとの間で関係又は関連が確立された状態で、マッピングモジュールレジストリルーチン３６は、マッピングモジュールステータスを発生させ、アプリケーションプログラムに警告し、すなわち、図２の破線で示しているように、マッピングモジュールレジストリルーチン３６は、各々、マッピングモジュール３８ａ〜ｃを直接的又は間接的にモニタすることができる。
【００２５】
特定の実装は汎用ＡＰＩの一部ではないために、マッピングモジュール３８ａ〜ｃが、関連の汎用ＡＰＩ演算と特定の実装の演算との間のマッピングに提供される。特定の実装が利用可能になった時に、マッピングモジュール３８ａ〜ｃは、追加又は取り付けることができる。同様に、特定の実装が削除された時に、マッピングモジュール３８ａ〜ｃは、削除又は切り離すことができる。特定の実装が利用可能になった又は削除された時に、マッピングモジュールレジストリルーチン３６は、対応するマッピングモジュール３８ａ〜ｃのステータスを例えば利用可能又は利用不能へと更新する。関係する全てのアプリケーションに、同様に通知することができる。すなわち、マッピングモジュールレジストリルーチン３６は、統合インタフェースを通じてマッピングモジュール３６ａ〜ｃの容易な取り付け及び切り離しをもたらし、既存の実装を妨げることなく新しい種類の実装の容易な適応を可能にする。
【００２６】
ＡＰＩ２６はまた、例えば、アプリケーションが要求した時にマッピングモジュール３６ａ〜ｃ間の透過的な切り換えを提供する。マッピングモジュール３８ａ〜ｃは、将来のいずれかのアプリケーションに対するサービス提供不能というような状態の変化に関する情報を与えることにより透過的な切換処理を容易にすることができる。透過的な切り換えをサポートするために、ＡＰＩは、新しいマッピングモジュール３８ａ〜ｃを選択するための十分な情報を要求することができる。内部制御インタフェース４５がＡＰＩ２６内に設けられ、ＡＰＩ２６内のエンティティが必要に応じて様々なシステム状態情報を要求するための十分なサービスを提供するシステムインタフェースを提供する。
【００２７】
マッピングモジュール選択ルーチン４０は、アプリケーションプログラム２４に対する適切なマッピングモジュール３８ａ〜ｃの選択を規定する。マッピングモジュール選択ルーチン４０による選択は、１つ又はそれよりも多くのマッピングモジュール３８ａ〜ｃをアプリケーションプログラム２４と関連付け、それによって特定の実装を選択する。これに関して、選択処理の実施形態を図３及び４を参照して下記で説明する。
【００２８】
マッピングモジュール選択ルーチン４０は、１組の規則に基づいて演算することができる。これらの規則は、管理アプリケーション３２のような管理アプリケーションによって管理ＡＰＩモジュール３０を通じて指定され、動的に更新することができる。これらの規則は、実行時の動的選択のために構文解析することができるテキストベースの符号化を通じて表現することができ、又はある一定の実行時環境内で実行可能なバイナリ規則とすることができる。受け取られた状態で、これらの規則は、データベース４４のようなＡＰＩから見て内部又は外部のデータストアに保管することができる。
【００２９】
これらの規則は、モジュール取り付け処理中に管理アプリケーション３２によってデータストレージのような内部又は外部のいずれかのエンティティから動的に取り出すことができる。例えば、取り付け中のマッピングモジュール３８ａ〜ｃは、管理アプリケーションが何を何処から取り出すかを判断することを可能にする十分な情報を提供することができる。
【００３０】
すなわち、マッピングモジュール選択ルーチン４０は、ある一定の入力に基づいてマッピングモジュールを選択するために指定された規則を適用することができる。規則の構造は、特定の必要性及び要望に従って選択することができる。各マッピングモジュール３８ａ〜ｃは、異なる構造を用いることができる。下記に例示的構造を示している。
2008501173.tif 000003
【００３１】
各「Ａｃｔｉｏｎ」は、一連のコード又は段階とすることができる。すなわち、デフォルトの「Ａｃｔｉｏｎ」が与えられると、構造は、各所定の表現に対する選択結果を提供する。構文解析された表現及びアクションに基づいて、実行時選択を発生させ、インストールすることができる。例えば、上の例の「ａｐｐ−ｅｘｐｒｅｓｓｉｏｎ」は、「ｓｔｒｅａｍｉｎｇ，ｂａｎｄｗｉｄｔｈ＝９６ｋｂｐｓ，ｎｏ−ｅｘｔｒａ−ｐａｙｍｅｎｔ−ｆｏｒ−ｔｒａｎｓｐｏｒｔ」とすることができる。すなわち、書き込まれた構造は、次のように表現することができる。
2008501173.tif 000004
【００３２】
従って、選択規則の複雑さは、汎用ＡＰＩの外側で維持することができる。更に、選択規則は、動的に更新することができ、次の選択機会に適用することができる。
【００３３】
図２に戻ると、汎用ＡＰＩの様々な演算を特定の実装に関連付けるために、特定の実装に関連付けられたマッピングモジュール３８ａ〜ｃと共に作動するマッピングサポート４２が設けられている。これに関して、マッピングサポート４２は、マッピングに関連する情報を得るためにデータベース４４又は他のデータストアにアクセスするように適応させることができる。データベース４４は、ＡＰＩ２６に対して内部又は外部のものとすることができる。すなわち、新しい実装環境が追加されたて、新しいマッピングモジュール３８ａ〜ｃが取り付けられた時に、マッピングモジュール３８ａ〜ｃは、特定の実装に対して指定された演算をデータベース４４内に説明した汎用ＡＰＩの既存の演算に関連付けることができる。マッピングサポートが、マッピングモジュール３８ａ〜ｃとＡＰＩ演算の間の全ての演算を関連付けることができるわけではないことを知った場合には、マッピングサポート４２は、それらの間のアソシエーションプロキシとして働くことができ、ＡＰＩとマッピングモジュール３８ａ〜ｃの両方から見た関連を達成する。
【００３４】
ここで図３を参照し、単一のマッピングモジュール選択処理を以下に説明する。同様に複数のマッピングモジュールの選択が可能であり、負荷分散などのためにサポートすることができることに注意すべきである。そのような選択処理５０は、図２を参照して上述したマッピングモジュール選択ルーチン４０内に実施することができ、それによって実行することができる。処理５０は、図３の左側に示しており、それと共に図３の右側に得られる１組のマッピングモジュール６０を示している。処理５０は、アプリケーションによって新しいマッピング要求がトリガされた時に始まる（ブロック５２）。それは、識別されている１つ又はそれよりも多くのマッピングモジュールのＩＤをもたらすことができる。例えば、図３は、５つのモジュールＭ１−Ｍ５が候補として識別される例を示している。
【００３５】
次に処理５０は、可能性を絞るために付加的な選択情報を要求する（ブロック５４）。この要求は、システム状態情報を提供する内部制御インタフェースに送ることができる。システム状態情報は、例えば、選択のためのコンテキストを提供することができ、それによって、ある一定の候補モジュールを可能性として排除することを可能にする。このシステム状態情報は、無効又は非アクティブ状態のインタフェースを有する全てのマッピングモジュールを選択処理において排除することができるように、例えば、各マッピングモジュール３８ａ〜ｃに対応するインタフェースのステータスを含むことができる。示している例では、マッピングモジュールＭ２及びＭ４は、この時点で可能性として排除される。
【００３６】
次に処理５０は、保管されている選択規則を検索する（ブロック５６）。上述のように、選択規則は、ＡＰＩ内又は外部データストアに保管することができる。
【００３７】
選択規則に基づいて、特定の実装に対して単一のマッピングモジュールを選択することができる（ブロック５８）。示している例では、マッピングモジュールＭ５が選択される。選択が為された状態で、実装環境を選択されたマッピングモジュールに関連付ける選択情報を後の使用に向けて保管することができる。
【００３８】
ある一定の実施形態では、アプリケーションがマルチモジュールサポートを有することが示されている場合には、アプリケーションの使用に向けて複数のマッピングモジュールを選択することが可能であろう。
【００３９】
図３に示すような選択処理が結果として複数のマッピングモジュールをもたらす（すなわち、選択規則が単一の候補を選択することができなかった）場合には、単一のマッピングモジュールの選択を容易にするために、アプリケーションの支援を要求することができる。代替的に、１組のデフォルトプリファレンスを残りのモジュールのうちの１つを選択するために適用することができる。
【００４０】
図４は、上述の処理をより詳細に例示している。説明する処理は、例証のためだけに示すものであり、実装に応答して処理の一部として他の処理段階を実行することができることに注意されたい。更に、処理段階の順序付けは、様々な実施形態では変更することができる。そのような変形は、本発明の範囲内であるように考えられている。
【００４１】
処理７０は、マッピング要求がアプリケーションによってトリガされた時に始まる（ブロック７２）。ブロック７４では、アプリケーションに対して１つよりも多くのモジュールが登録されたか否かに関して判断が為される。１つのみのモジュールが登録されているという判断が為された場合には、ただ１つだけのモジュールが選択され（ブロック９２）、処理は完了する。
【００４２】
ブロック７４における判断が、アプリケーションの特定の実装に対する候補として１つよりも多くのマッピングモジュールが存在することを示す場合には、処理は、ブロック７６に進み、内部制御インタフェースを通じてシステムデータを取得する。ブロック７６において取得した情報に基づいて、候補マッピングモジュールの組が再定義を必要とするか否かについて判断が為される（ブロック７８）。再定義が必要な場合は、候補モジュールに対する基準が再定義され（ブロック８０）、処理はブロック８１に進む。ブロック７８における判断が再定義の必要がないことを示す場合には、処理は、ブロック８０を省略してブロック８１に進む。
【００４３】
ブロック８１において、１つよりも多い候補モジュールが残っているか否かの判断が為される。判断が１つだけの残りのモジュールを示す場合には、処理７０は、ただ１つだけのモジュールの選択を行うことができ（ブロック９２）、処理は終了する。
【００４４】
ブロック８１における判断が１つよりも多い候補マッピングモジュールが残っていることを示す場合には、処理７０は、選択規則を検索及び取得する（ブロック８２）。上述のように、選択規則は、ＡＰＩに対して内部に又はデータベースのような外部データストアに保管することができる。
【００４５】
ブロック８２において取得した検索規則に基づいて、候補マッピングモジュールの組が再定義を必要とするか否かについて判断が為される（ブロック８４）。再定義が必要な場合は、候補モジュールの基準が再定義され（ブロック８６）、処理はブロック８８に進む。ブロック８４における判断が再定義の必要がないことを示す場合には、処理はブロック８６を省略し、ブロック８８に進む。
【００４６】
ブロック８８では、処理は、アプリケーションに対する候補として１つよりも多いマッピングモジュールが残っているか否かを判断する。１つだけの候補が残っているという判断が為された場合には、処理はブロック９２へと続き、ただ１つだけのマッピングモジュールを選択する。ブロック８８において候補として１つよりも多いマッピングモジュールが残っている場合には、処理７０はブロック９０に進み、ここで利用可能な情報に基づいて単一のマッピングモジュールが最良のターゲットとして選択される。すなわち、特定の実装に対する単一のマッピングモジュールの選択が行われる。
【００４７】
図５は、マッピングモジュールの切り離しにおける処理の実施形態を例示している。そのような処理は、図２において示しているマッピングモジュールレジストリルーチン３６によって実行することができる。処理１００は、ＡＰＩによって切り離しが要求されるか又は検出された時に始まる（ブロック１０２）。切り離されるモジュールが、いずれかのアクティブマッピングを有するか否かに関する判断が為される（ブロック１０４）。例えば、アクティブマッピングは、切り離しを要求しているアプリケーションに加えて、１つ又はそれよりも多くのアプリケーションによるマッピングモジュールのアクセスを含むことができる。
【００４８】
アクティブマッピングが存在しないと判断された場合には、処理１００は、ブロック１１０に進む。ブロック１０４においてアクティブマッピングが存在すると判断された場合には、処理１００は、アクティブマッピングを有するアプリケーションの検索を実行する（ブロック１０６）。次に、アクティブマッピングを有する各アプリケーションは、例えば、マッピングモジュールを切り離し中であるという警告を通じて通知される（ブロック１０８）。
【００４９】
ブロック１１０において、処理は、モジュール特定の機能を実行する。例えば、マッピングモジュールに特定の機能は、制御されたキャッシュの消去を含むことができる。すなわち、モジュールが切り離される時に、切り離すモジュールに関連付けられたキャッシュを更に処理することができ、無視されることはない。
【００５０】
ブロック１１２では、処理は、汎用機能を実行する。汎用機能は、全てのマッピングモジュールに対して共通である。例えば、これらは、マッピングモジュールの登録抹消を含むことができる。
【００５１】
図６は、マッピングモジュールの取り付け又は切り離しのようなイベントの発生における処理の実施形態を例示している。図５を参照して上述した処理の場合のように、処理１２０は、図２において示したマッピングモジュールレジストリルーチン３６によって実行することができる。処理１２０は、ＡＰＩによってイベントが要求されるか又は検出された時に始まる（ブロック１２２）。イベントは、モジュールの取り付け又は切り離し中に起こると考えられるように、モジュールによって発生させることができる。
【００５２】
他の実施形態では、イベントは、アプリケーションによって発生させることができる。例えば、ＱｏＳアプリケーションが、パラメータが所定の閾値を超えるか又はそれより下回るかのいずれかが起こったと判断した場合には、アプリケーションは、他のアプリケーションに送られるイベントを発生させることができる。イベントは、他のアプリケーションがパラメータの値の変更を受け入れるように、それらの機能を調節することを可能にするか又は命令することができる。
【００５３】
イベントを発生させているマッピングモジュール又はアプリケーションによって発生したイベントに関連付けられたマッピングモジュールが、いずれかのアクティブマッピングを有するか否かに関する判断が為される（ブロック１２４）。アクティブマッピングが存在しないと判断された場合には、処理１２０は終了する。ブロック１２４において、アクティブマッピングが存在すると判断された場合には、処理１２０は、アクティブマッピングを有するアプリケーションの検索を実行する（ブロック１２６）。次に、イベントは、アクティブマッピングを有する各アプリケーションに送られる（ブロック１２８）。
【００５４】
ブロック１３０では、処理は、イベント特定の機能を実行する。これらの機能は、イベント及びマッピングモジュールに特定のものとすることができる。従って、２つのモジュールが同じイベントを発生させた場合には、処理は、異なるモジュールに基づいて異なる機能を実行することができる。例えば、イベントが、実行中のストリームアプリケーションへのデータストリームの中断を示す場合には、アプリケーションによって用いられる圧縮プログラム／解凍プログラム（コーデック）は、他のコーデックとは異なる反応をすることができる。一部のコーデックは、中断に適応させることができ、一方、他のコーデックは、異なるコーデックに切り換えることをアプリケーションに要求することができる。従って、異なるマッピングモジュールが、各コーデックに対して必要とされる。
【００５５】
図７は、汎用ＡＰＩ、管理ＡＰＩ、コア機能性、データストレージ区域、及び複数のソフトウエアモジュール実装の間の一般的な関連を示す概略レイアウトである。コア機能性は、汎用ＡＰＩを通じてアプリケーションに提供されるサービスとソフトウエアモジュール実装に特定の演算との間の間接化を提供する。アプリケーションサービスとインストールされた（利用可能な）ソフトウエア実装との間のマッピングは、実行中に動的に実行される。一般的に、この情報は、図７においてコア機能部分の中に存在するように示されているデータストレージ領域内に保管される。この情報は、管理ＡＰＩによって変更することができ、システムの内側又は外側のいずれかに設けられたエンティティを用いることができる。情報がシステムの外側のエンティティによって用いられる場合には、外部信号方式の形が用いられる。
【００５６】
本発明の一実施形態の実装は、一般的に以下のものである。一例として、アプリケーションに提供されるサービスをｆ１（）、ｆ２（）、及びｆ３（）と仮定することができる。更に、この例においてモジュールが以下の演算を有すると仮定することができる。
モジュール−１：Ｏ１，Ｏ２，Ｏ３
モジュール−２：Ｏ４，Ｏ５
モジュール−３：Ｏ６，Ｏ７
【００５７】
モジュール−１は、３Ｇアクセスに対してサポートを提供することができ、モジュール−２は、４Ｇアクセスに対してサポートを提供することができ、モジュール−３は、誰かがアクセスを取得することができるように許可、認証などのようなセキュリティ関連サービスを提供することができる。コア機能性は、各登録ソフトウエアモジュール実装の演算に対応してマップされた擬似演算を提供することができる。例えば、これらの擬似演算は、以下のものとすることができる。
Ａ：認証
Ｂ：許可
Ｃ：汎用無線技術アクセス
Ｄ：任意的な無線技術アクセス
【００５８】
次に、２つのサービスを考えることができる。第１のサービスｆ１（）は、１つの無線技術を通じて単一のアクセスを提供する。第２のサービスｆ２（）は、複数の無線技術を通じて複数アクセスを提供する。これらのサービスは、次のようにマップすることができる。任意的な演算は、「［  ］」でマーク付けされており、演算のリストは、「｛  ｝」でマーク付けされている。
ｆ１（）＝Ａ＋［Ｂ］＋Ｃ＋［Ｄ］
ｆ２（）＝Ａ＋［Ｂ］＋｛Ｃ＋［Ｄ］，Ｃ＋［Ｄ］，…，Ｃ＋［Ｄ］｝
【００５９】
ソフトウエアモジュール実装環境には、それらが登録中にコア機能部分に十分な情報を提供する必要があるために、これらの擬似演算が既知である。下記の表は、ソフトウエアモジュール実装環境と提供されたＡＰＩサービスとの間のマッピングを表している。
【００６０】
2008501173.tif 000005
【００６１】
この場合には、モジュール−１のＯ３演算は、擬似演算クラスを有しておらず、トランザクションの一部として用いるべきではないことを示している。
【００６２】
アプリケーションが、ｆ１（）サービスを呼び出した時に、次の擬似演算が以下の順序で実行される。対応する真の演算は、括弧内に表されている：Ａ（Ｏ６），Ｂ（Ｏ７），Ｃ（Ｏ４＋Ｏ５）。擬似演算Ｂは、任意的な演算として定義されている。しかし、それは何らかの実装の演算への既存のマッピングを有するために、それは実行される。演算Ｄもまた、任意的な演算として定義されている。モジュール−２は、１組のプリファレンス（すなわち、利用可能であれば３Ｇよりも４Ｇを常に用いる）に基づいて用いられ、かつ擬似演算クラスＤに対して有効な演算を提供しないので、それは無視される。
【００６３】
アプリケーションが、多重アクセスの場合に対してｆ２（）サービスを呼び出す時に、以下の擬似演算が順番に実行される：Ａ（Ｏ６）、Ｂ（Ｏ７）、Ｃ（Ｏ４＋Ｏ５）、Ｃ（Ｏ１）、Ｄ（Ｏ２）。上述のように、Ｂは、任意的な演算として定義されているが、それが何らかの実装の演算への既存のマッピングを有するために、それは実行される。サービスに対する対応する実際の演算の１つが失敗した場合には、全体のサービスが失敗し、関連のロールバック（暗示的／明示的）が発生する。
【００６４】
「モジュール」又は「ルーチン」のような用語は、本明細書ではある一定の実施形態に関連して用いられることに注意されたい。そのような用語は、他の実施形態では、ハードウエア、ソフトウエア、ファームウエア、又はその他における本発明の実装を意味する場合があることを当業者は理解するであろう。更に、モジュール又はルーチンによって実行される機能は、２つ又はそれよりも多くのモジュール又はルーチンによって実行されるように分割することができる。同様に、２つ又はそれよりも多くのモジュールによって実行される機能は、単一のモジュール又はルーチンによって実行されるように組み合わせることができる。全てのそのような変形は、本発明の範囲内であるように考えられている。
【００６５】
本発明の特定的な実施形態を開示したが、様々な異なる修正及び組合せが可能であり、かつ特許請求の範囲の真の精神及び範囲にあるように考えられていることは理解されるものとする。従って、本明細書に呈示する要約及び開示の通りに限定する意図はない。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施形態による例示的コンピュータシステムを示すブロック図である。
【図２】本発明の実施形態によるＡＰＩの構成を例示するブロック図である。
【図３】実施形態によるマッピングモジュール選択処理の概略図である。
【図４】図３のマッピングモジュール選択処理を詳細に例示する流れ図である。
【図５】モジュール切り離し処理の実施形態を例示する流れ図である。
【図６】モジュール取り付け処理の実施形態を例示する流れ図である。
【図７】本発明による汎用ＡＰＩ、管理ＡＰＩ、コア機能性、データ記憶区域、及び個々のソフトウエアモジュール実装のレイアウトを表す図である。
【符号の説明】
【００６７】
２４  アプリケーションプログラム
２６  アプリケーションプログラムインタフェース
３２  管理アプリケーション
【図１】
2008501173.tif 000006
【図２】
2008501173.tif 000007
【図３】
2008501173.tif 000008
【図４】
2008501173.tif 000009
【図５】
2008501173.tif 000010
【図６】
2008501173.tif 000011
【図７】
2008501173.tif 000012
【手続補正書】
【提出日】平成19年1月30日(2007.1.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
汎用アプリケーションプログラムインタフェース（ＡＰＩ）を用いてアプリケーションをマッピングモジュールにアタッチする、コンピュータにおいて実施される方法であって、
ａ）アプリケーションによってトリガされたマッピング要求をＡＰＩに受け取る段階と、
ｂ）所定の組の規則を適用することにより、前記ＡＰＩに登録されたマッピングモジュールの群から１つ又はそれよりも多くの候補マッピングモジュールを選択する段階と、
ｃ）前記アプリケーションと１つ又はそれよりも多くのマッピングモジュールとの間の関連を示す情報及び規則の少なくとも１つにアクセスする段階と、
ｄ）前記情報及び規則の少なくとも１つに基づいて、前記アプリケーションと共に用いるための１つ又はそれよりも多くのターゲットマッピングモジュールを選択する段階と、
を含むことを特徴とする方法。
【請求項２】
前記所定の組の規則は、アプリケーションタイプの前記候補マッピングモジュールとの関連を含むことを特徴とする請求項１に記載の方法。
【請求項３】
段階ｃ）は、内部制御インタフェースを通じてシステムデータを取り出す段階を含むことを特徴とする請求項１に記載の方法。
【請求項４】
段階ｃ）は、データベースから規則を取り出す段階を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項４に記載の方法。
【請求項６】
前記規則は、前記ＡＰＩ内の所定の規則を含むことを特徴とする請求項４に記載の方法。
【請求項７】
１つ又はそれよりも多くのターゲットマッピングモジュールを選択する前記段階に基づいて、前記汎用ＡＰＩの演算を特定の実装にマップして関連付ける段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項８】
１つ又はそれよりも多くのＡＰＩ機能の管理に関するデータを取得するために１つ又はそれよりも多くの管理アプリケーションにアクセスする段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記アクセスする段階は、前記１つ又はそれよりも多くの管理アプリケーションにアクセスするために管理ＡＰＩモジュールを用いる段階を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
管理ＡＰＩモジュールは、前記ＡＰＩ内に収容されていることを特徴とする請求項９に記載の方法。
【請求項１１】
前記アプリケーションと、段階ｄ）で選択された１つ又はそれよりも多くのターゲットマッピングモジュールとの間の関連を記録するためにモジュールレジストリを更新する段階、
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記情報及び規則は、動的に更新されるようになっていることを特徴とする請求項１に記載の方法。
【請求項１３】
前記情報及び規則は、実行時に構文解析されるテキストベースの符号化を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記情報及び規則は、実行時に構文解析されるバイナリベースの符号化を含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記情報及び規則は、演算を前記１つ又はそれよりも多くのマッピングモジュールに対する擬似演算に関連付けることを特徴とする請求項１に記載の方法。
【請求項１６】
ａ）アプリケーションによってトリガされたマッピング要求を受け取り、
ｂ）所定の組の規則を適用することにより、登録されたマッピングモジュールの群から１つ又はそれよりも多くの候補マッピングモジュールを選択し、
ｃ）前記アプリケーションと１つ又はそれよりも多くのマッピングモジュールとの間の関連を示す情報及び規則の少なくとも１つにアクセスし、
ｄ）前記情報及び規則の少なくとも１つに基づいて、前記アプリケーションと共に用いるための１つ又はそれよりも多くのターゲットマッピングモジュールを選択する、
方法段階を機械に実行させるための機械可読プログラムコード、
を含むことを特徴とするプログラム製品。
【請求項１７】
前記所定の組の規則は、アプリケーションタイプの前記候補マッピングモジュールとの関連を含むことを特徴とする請求項１６に記載のプログラム製品。
【請求項１８】
段階ｃ）は、内部制御インタフェースを通じてシステムデータを取り出す段階を含むことを特徴とする請求項１６に記載のプログラム製品。
【請求項１９】
段階ｃ）は、データベースから規則を取り出す段階を含むことを特徴とする請求項１６に記載のプログラム製品。
【請求項２０】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項１９に記載のプログラム製品。
【請求項２１】
前記規則は、ＡＰＩ内の所定の規則を含むことを特徴とする請求項１９に記載のプログラム製品。
【請求項２２】
１つ又はそれよりも多くのターゲットマッピングモジュールを選択する前記段階に基づいて、汎用ＡＰＩの演算を特定の実装にマップして関連付ける、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項１６に記載のプログラム製品。
【請求項２３】
１つ又はそれよりも多くのＡＰＩ機能の管理に関するデータを取得するために１つ又はそれよりも多くの管理アプリケーションにアクセスする、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項１６に記載のプログラム製品。
【請求項２４】
前記アクセスする段階は、前記１つ又はそれよりも多くの管理アプリケーションにアクセスするために管理ＡＰＩモジュールを用いる段階を含むことを特徴とする請求項２３に記載のプログラム製品。
【請求項２５】
管理ＡＰＩモジュールは、前記ＡＰＩ内に収容されていることを特徴とする請求項２４に記載のプログラム製品。
【請求項２６】
前記アプリケーションと、段階ｄ）で選択された１つ又はそれよりも多くのターゲットマッピングモジュールとの間の関連を記録するためにモジュールレジストリを更新する、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項１６に記載のプログラム製品。
【請求項２７】
前記情報及び規則は、動的に更新されるようになっていることを特徴とする請求項１６に記載のプログラム製品。
【請求項２８】
前記情報及び規則は、実行時に構文解析されるテキストベースの符号化を含むことを特徴とする請求項２７に記載のプログラム製品。
【請求項２９】
前記情報及び規則は、実行時に構文解析されるバイナリベースの符号化を含むことを特徴とする請求項２７に記載のプログラム製品。
【請求項３０】
前記情報及び規則は、演算を前記１つ又はそれよりも多くのマッピングモジュールに対する擬似演算に関連付けることを特徴とする請求項１６に記載のプログラム製品。
【請求項３１】
１つ又はそれよりも多くのアプリケーションに関連付けられたマッピングモジュールの取り付け、切り離し、及び追跡を管理するモジュールレジストリと、
アプリケーションによってトリガされたマッピング要求に応答して、所定の組の規則を適用することにより前記マッピングモジュールの１つ又はそれよりも多くを選択することを容易にするマッピングモジュールセレクタと、
を含むことを特徴とする「アプリケーションプログラムインタフェース（ＡＰＩ）」システム。
【請求項３２】
前記所定の組の規則は、１つ又はそれよりも多くの候補マッピングモジュールとのアプリケーションタイプの関連を含むことを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記マッピングモジュールセレクタは、内部制御インタフェースを通じてシステムデータを取り出すようになっていることを特徴とする請求項３１に記載のシステム。
【請求項３４】
前記マッピングモジュールセレクタは、データベースから規則を取り出すようになっていることを特徴とする請求項３１に記載のシステム。
【請求項３５】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項３２に記載のシステム。
【請求項３６】
１つ又はそれよりも多くのアプリケーションプログラムと、
前記アプリケーションプログラムを実行するプロセッサと、
前記１つ又はそれよりも多くのアプリケーションに関連付けられたマッピングモジュールの取り付け、切り離し、及び追跡を管理するモジュールレジストリ、及び
アプリケーションによってトリガされたマッピング要求に応答して、所定の組の規則を適用することにより前記マッピングモジュールの１つ又はそれよりも多くを選択することを容易にするマッピングモジュールセレクタ、
を含むアプリケーションプログラムインタフェース（ＡＰＩ）と、
を含むことを特徴とする電子装置。
【請求項３７】
前記所定の組の規則は、１つ又はそれよりも多くの候補マッピングモジュールとのアプリケーションタイプの関連を含むことを特徴とする請求項３６に記載の電子装置。
【請求項３８】
前記マッピングモジュールセレクタは、内部制御インタフェースを通じてシステムデータを取り出すようになっていることを特徴とする請求項３６に記載の電子装置。
【請求項３９】
前記マッピングモジュールセレクタは、データベースから規則を取り出すようになっていることを特徴とする請求項３６に記載の電子装置。
【請求項４０】
前記データベースは、前記ＡＰＩ内に収容されていることを特徴とする請求項３９に記載の電子装置。
【請求項４１】
前記電子装置は、モバイル装置であることを特徴とする請求項３６に記載の電子装置。
【請求項４２】
イベントを１つ又はそれよりも多くのアプリケーションに関連付ける、コンピュータにおいて実施される方法であって、
ａ）各モジュールがＡＰＩ実装を示す１つ又はそれよりも多くのアクティブマッピングモジュールにイベントが関連付けられているか否かを判断する段階と、
ｂ）前記１つ又はそれよりも多くのアクティブマッピングモジュールに関連付けられた１つ又はそれよりも多くのアプリケーションを識別する段階と、
ｃ）前記１つ又はそれよりも多くのアプリケーションに前記イベントを通知する段階と、
を含むことを特徴とする方法。
【請求項４３】
前記イベントは、マッピングモジュールの取り付け及び切り離しのうちの少なくとも一方であることを特徴とする請求項４２に記載の方法。
【請求項４４】
前記イベントは、アプリケーションによって発生することを特徴とする請求項４２に記載の方法。
【請求項４５】
ｄ）前記イベントに基づいて前記アプリケーションの機能性を実行する段階、
を更に含むことを特徴とする請求項４２に記載の方法。
【請求項４６】
ａ）各モジュールがＡＰＩ実装を示す１つ又はそれよりも多くのアクティブマッピングモジュールにイベントが関連付けられているか否かを判断し、
ｂ）前記１つ又はそれよりも多くのアクティブマッピングモジュールに関連付けられた１つ又はそれよりも多くのアプリケーションを識別し、
ｃ）前記１つ又はそれよりも多くのアプリケーションに前記イベントを通知する、
方法段階を機械に実行させるための機械可読プログラムコード、
を含むことを特徴とするプログラム製品。
【請求項４７】
前記イベントは、マッピングモジュールの取り付け及び切り離しのうちの少なくとも一方であることを特徴とする請求項４６に記載のプログラム製品。
【請求項４８】
前記イベントは、アプリケーションによって発生することを特徴とする請求項４６に記載のプログラム製品。
【請求項４９】
ｄ）前記イベントに基づいて前記アプリケーションの機能性を実行する、
方法段階を機械に実行させるための機械可読プログラムコードを更に含むことを特徴とする請求項４６に記載のプログラム製品。
【国際調査報告】
2008501173.tif 000013
2008501173.tif 000014