(57)【特許請求の範囲】
【請求項１】
ワイヤレスアプリケーションを発行する方法であって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合する工程であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、工程と、
統合されたワイヤレスアプリケーションを発行する工程と、
前記ワイヤレスアプリケーションを用いてワイヤレスクライアントにより送信された取得要求を受信する工程であって、前記取得要求を用いて、前記動的実装レイヤの前記インタフェース実装をサーバから取得することを要求する工程と、
受信された前記取得要求に応じて、前記動的実装レイヤの前記インタフェース実装を前記ワイヤレスクライアントに送信する工程であって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールする工程と、を備える方法。
【請求項２】
請求項１に記載の方法であって、さらに、
前記ワイヤレスアプリケーションに前記ＳＤＫの永続インターフェイスレイヤを統合する前に、前記ＳＤＫを分割して、前記永続インターフェイスレイヤとして前記インタフェースプロトコルをカプセル化するとともに、前記動的実装レイヤとしてインタフェース実装をカプセル化する工程を備える、方法。
【請求項３】
請求項２に記載の方法であって、
前記ＳＤＫの分割は、リフレクション機構を用いて実行される、方法。
【請求項４】
請求項１に記載の方法であって、さらに、
前記動的実装レイヤのインタフェース実装を前記ワイヤレスクライアントに送信した後に、
前記ワイヤレスクライアントから送信されるクエリ要求を受信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有する場合に、前記更新バージョンを前記サーバから前記ワイヤレスクライアントに送信する工程であって、前記ワイヤレスクライアントは、前記更新バージョンを用いて、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションの前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
【請求項５】
ワイヤレスアプリケーションを発行する方法であって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合する工程であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、工程と、
統合されたワイヤレスアプリケーションを発行する工程であって、
前記ＳＤＫの元のバージョンの前記永続インターフェイスレイヤと前記動的実装レイヤとに統合されたワイヤレスアプリケーションを発行し、ワイヤレスクライアントによる前記ワイヤレスアプリケーションのダウンロードを可能にする工程であって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおける前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備える、前記統合されたワイヤレスアプリケーションの発行と、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールする工程と、
前記ＳＤＫの前記永続インターフェイスレイヤを前記ワイヤレスアプリケーションに統合するのとは異なる時に、元のバージョンの前記動的実装レイヤを前記ワイヤレスアプリケーションに統合する工程と、を備える方法。
【請求項６】
請求項５に記載の方法であって、さらに、
前記ＳＤＫの元のバージョンの前記永続インターフェイスレイヤと前記動的実装レイヤとに統合されたワイヤレスアプリケーションを発行し、前記ワイヤレスクライアントによる前記ワイヤレスアプリケーションのダウンロードを可能にした後に、
前記ワイヤレスクライアントから送信されるクエリ要求を受信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有する場合に、前記更新バージョンを前記サーバから前記ワイヤレスクライアントに送信する工程であって、前記ワイヤレスクライアントは、前記更新バージョンを用いて、前記永続インターフェイスレイヤ、前記ワイヤレスアプリケーションの前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
【請求項７】
ワイヤレスアプリケーションを実行する方法であって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得する工程と、
前記データパッケージを用いて、前記ワイヤレスアプリケーションを実行する工程であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは、前記ワイヤレスアプリケーションに統合され、前記ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、
前記データパッケージを用いて前記ワイヤレスアプリケーションを実行する前記工程は、
サーバに取得要求を送信する工程であって、前記取得要求は、前記動的実装レイヤのインタフェース実装を前記サーバから取得することを要求するものである工程と、
前記サーバから返送された前記動的実装レイヤの前記インタフェース実装を受信する工程と、
前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備え、
前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備える、方法。
【請求項８】
請求項７に記載の方法であって、
前記インタフェース実装用のクラスライブラリを動的にロードする前記工程は、
前記サーバにクエリ要求を送信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記サーバから返送された前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを受信する工程と、
前記更新バージョンを用いて、前記ワイヤレスアプリケーションの前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
【請求項９】
ワイヤレスアプリケーションを実行する方法であって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得する工程であって、前記ワイヤレスアプリケーションは、元のバージョンの動的実装レイヤに統合される、データパッケージの取得と、
前記データパッケージを用いて、前記ワイヤレスアプリケーションを実行する工程であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは、前記ワイヤレスアプリケーションに統合され、前記ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、
前記データパッケージを用いて前記ワイヤレスアプリケーションを実行する前記工程は、
前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおけるインタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備え、
前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備える、方法。
【請求項１０】
請求項９に記載の方法であって、
前記インタフェース実装用のクラスライブラリを動的にロードする前記工程は、
前記サーバにクエリ要求を送信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記サーバから返送された前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを受信する工程と、
前記更新バージョンを用いて、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
【請求項１１】
ワイヤレスアプリケーション発行装置であって、
少なくとも１つのプロセッサであって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、ことと、
統合されたワイヤレスアプリケーションを発行することと、
前記ワイヤレスアプリケーションを用いてワイヤレスクライアントにより送信された取得要求を受信することであって、前記取得要求を用いて、前記動的実装レイヤの前記インタフェース実装をサーバから取得することを要求することと、
受信された前記取得要求に応じて、前記動的実装レイヤの前記インタフェース実装を前記ワイヤレスクライアントに送信することであって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出すことと、
前記インタフェース実装用のクラスライブラリを動的にロードすることと、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールすることと、を行うように構成される少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を与えるように構成されるメモリと、
を備えるワイヤレスアプリケーション発行装置。
【請求項１２】
ワイヤレスアプリケーション発行装置であって、
少なくとも１つのプロセッサであって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、ことと、
統合されたワイヤレスアプリケーションを発行することであって、
前記ＳＤＫの元のバージョンの前記永続インターフェイスレイヤと前記動的実装レイヤとに統合されたワイヤレスアプリケーションを発行し、ワイヤレスクライアントによる前記ワイヤレスアプリケーションのダウンロードを可能にすることであって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおける前記インタフェース実装を呼び出すことと、
前記インタフェース実装用のクラスライブラリを動的にロードすることと、を含む、統合されたワイヤレスアプリケーションの発行と、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールすることと、
前記ＳＤＫの前記永続インターフェイスレイヤを前記ワイヤレスアプリケーションに統合するのとは異なる時に、元のバージョンの前記動的実装レイヤを前記ワイヤレスアプリケーションに統合するように構成される少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を与えるように構成されるメモリと、
を備えるワイヤレスアプリケーション発行装置。
【請求項１３】
ワイヤレスアプリケーション実行装置であって、
少なくとも１つのプロセッサであって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得することと、
前記データパッケージを用いて、前記ワイヤレスアプリケーションを実行することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは、前記ワイヤレスアプリケーションに統合され、前記ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備えることと、を行うように構成される少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を与えるように構成されるメモリと、
を備え、
前記データパッケージを用いて前記ワイヤレスアプリケーションを実行することは、
前記サーバに取得要求を送信することであって、前記取得要求は、前記動的実装レイヤのインタフェース実装を前記サーバから取得することを要求するものであることと、
前記サーバから返送された前記動的実装レイヤの前記インタフェース実装を受信することと、
前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出すことと、
前記インタフェース実装用のクラスライブラリを動的にロードすることと、を含み、
前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備える、ワイヤレスアプリケーション実行装置。
【請求項１４】
ワイヤレスアプリケーション実行装置であって、
少なくとも１つのプロセッサであって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得することであって、前記ワイヤレスアプリケーションは、元のバージョンの動的実装レイヤに統合される、データパッケージの取得と、
前記データパッケージを用いて、前記ワイヤレスアプリケーションを実行することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは、前記ワイヤレスアプリケーションに統合され、前記ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備えることと、を行うように構成される少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を与えるように構成されるメモリと、
を備え、
前記データパッケージを用いて前記ワイヤレスアプリケーションを実行することは、
前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおけるインタフェース実装を呼び出すことと、
前記インタフェース実装用のクラスライブラリを動的にロードすることと、を含み、
前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備える、ワイヤレスアプリケーション実行装置。
【請求項１５】
ワイヤレスアプリケーションを発行するコンピュータプログラムであって、コンピュータを使用して、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合する機能であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、統合機能と、
統合されたワイヤレスアプリケーションを発行する機能と、
前記ワイヤレスアプリケーションを用いてワイヤレスクライアントにより送信された取得要求を受信する機能であって、前記取得要求を用いて、前記動的実装レイヤの前記インタフェース実装をサーバから取得することを要求する機能と、
受信された前記取得要求に応じて、前記動的実装レイヤの前記インタフェース実装を前記ワイヤレスクライアントに送信する機能であって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出す機能と、
前記インタフェース実装用のクラスライブラリを動的にロードする機能と、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールする機能と、を実現させるための、コンピュータプログラム。
【請求項１６】
ワイヤレスアプリケーションを発行するコンピュータプログラムであって、コンピュータを使用して、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合する機能であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、統合機能と、
統合されたワイヤレスアプリケーションを発行する機能であって、
前記ＳＤＫの元のバージョンの前記永続インターフェイスレイヤと前記動的実装レイヤとに統合されたワイヤレスアプリケーションを発行し、前記ワイヤレスクライアントによる前記ワイヤレスアプリケーションのダウンロードを可能にする機能であって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおける前記インタフェース実装を呼び出す機能と、
前記インタフェース実装用のクラスライブラリを動的にロードする機能と、を含む、ワイヤレスアプリケーションを発行する機能と、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールする機能と、
前記ＳＤＫの前記永続インターフェイスレイヤを前記ワイヤレスアプリケーションに統合するのとは異なる時に、元のバージョンの前記動的実装レイヤを前記ワイヤレスアプリケーションに統合する機能と、を実現させるための、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［クロスリファレンス］
本出願は、ワイヤレスアプリケーションを発行および実行する方法ならびに装置（METHOD AND DEVICE FOR PUBLISHING AND IMPLEMENTING WIRELESS APPLICATIONS）の名称で２０１２年６月８日に出願された中国特許出願No.201210189767.4に基づく優先権を主張するものであり、前記出願は、あらゆる目的で参照することにより本明細書に組み込まれる。
【０００２】
本出願は、ワイヤレスアプリケーションを発行および実行する方法ならびに装置に関する。
【背景技術】
【０００３】
「ワイヤレスアプリケーション」は、一般的に、端末ベースのオペレーティングシステムから開発されたワイヤレス・クライアントアプリケーションを指す。ワイヤレスアプリケーションは、通常、特定の機能を実行するＳＤＫ（ソフトウェア開発キット：Software Development Kits）に統合される。ＳＤＫの一例は、広告ＳＤＫ、すなわち、広告ロジックを統合するようにワイヤレスアプリケーション開発者によって用いられるソフトウェア開発キットである。ワイヤレス広告を掲載する業務に携わる会社は、一般的に、自社のウェブサイト上のこのようなＳＤＫをワイヤレスアプリケーション開発者に提供する。
【０００４】
ＳＤＫは、様々なモードのプレースメントを用いて、ワイヤレスアプリケーション統合における相違に対処する。たとえば、ワイヤレスアプリケーション広告ＳＤＫシステムにおいて、現在２種類の広告プラットフォームが市場に存在する。１種類の広告プラットフォームは、自分自身の広告を掲載する会社、すなわち、広告を希望する会社向けの広告資源プラットフォームである。このような種類の広告プラットフォームの一例として、ADMobが挙げられる。もう１種類の広告プラットフォームは、複数の広告プラットフォームを統合するＳＤＫを用いる広告最適化サービスを提供するプラットフォームである。このような種類の広告プラットフォームの一例として、mogo(www.adsmogo.com)が挙げられる。したがって、広告プラットフォームは、ワイヤレスアプリケーション（App）広告の全域充足率を最適化して、的を絞った広告の精度を向上させる。前者の広告プラットフォームでは、開発者は、広告プラットフォームのＳＤＫを開発者のワイヤレスアプリケーションに統合する必要がある。前者の広告プラットフォームでは、新しいバージョンのＳＤＫが発行されるたびに、ワイヤレスアプリケーション開発者は、新しいバージョンのＳＤＫを統合し、コードを修正して、ワイヤレスアプリケーションを再発行する必要があり、さらに、対応するワイヤレスアプリケーションの更新をユーザに求める必要がある。後者の広告プラットフォームでは、統合された広告プラットフォームＳＤＫのいずれかがアップグレードされると、ＳＤＫを更新する必要に迫られる。さらに、ワイヤレスアプリケーション開発者が新しいＳＤＫを追加したり、統合ＳＤＫを削除する場合には、開発者は、新しいアプリケーションを開発および発行しなければならない。
【０００５】
複数の広告プラットフォームを統合するＳＤＫを用いるプラットフォームでは、ワイヤレスアプリケーション開発者がワイヤレスアプリケーションの開発を完了した後に、再開発やアップグレードメンテナンスの必要がないまま、長い時間が経過してしまうことがしばしば起こり得る。その一方、既存のワイヤレスアプリケーションのバージョンアップの結果として、統合ＳＤＫを用いる広告プラットフォームが、既存のワイヤレスアプリケーションの古いバージョンと互換性がなくなる場合がある。この場合には、既存のワイヤレスアプリケーションをアップグレードする必要がある。ワイヤレスアプリケーションのエンドユーザの観点からすると、エンドユーザは、ワイヤレスアプリケーションを更新する必要性がない。ワイヤレスアプリケーション開発者にとって、エンドユーザにアプリケーションを更新してもらう必要があること、および、アプリケーションをアップグレードする必要があることによって、単純に、追加の開発およびメンテナンスの作業が必要となるばかりでなく、アプリケーション発行コストが加わることになる。
【０００６】
広告資源を十分に使いこなし、全域充足率を挙げるために、広告プラットフォームは、通常、複数の統合広告ＳＤＫを用いる。広告ＳＤＫを統合する広告プラットフォームを用いる場合、ワイヤレスアプリケーションが非常に少数の広告ＳＤＫを統合する結果として、ターゲティング広告を行う会社や広告主にとって、資源が十分でない（充足率が低下し、資源が無駄になるという結果を招く）という問題を避ける必要がある。しかし、広告ＳＤＫを統合するプラットフォームでは、広告ＳＤＫのアップグレードは、ワイヤレスアプリケーションのアップグレード、パッケージ化、および発行に関する作業量が膨大に増える結果となりかねない。
【発明の概要】
【０００７】
本発明の様々な実施形態を、添付の図面と共に以下に詳細に記載する。
【図面の簡単な説明】
【０００８】
【図１】ワイヤレスアプリケーション発行処理の一つの実施形態を示すフローチャート。
【０００９】
【図２】ワイヤレスアプリケーション発行処理の別の実施形態を示すフローチャート。
【００１０】
【図３】ワイヤレスアプリケーション発行処理のさらに別の実施形態を示すフローチャート。
【００１１】
【図４】従来のワイヤレスアプリケーション発行およびＳＤＫアップグレード処理を示す説明図。
【００１２】
【図５】ワイヤレスアプリケーション発行およびＳＤＫアップグレード処理の一つの実施形態を示す説明図。
【００１３】
【図６】ワイヤレスアプリケーション実行処理の一つの実施形態を示すフローチャート。
【００１４】
【図７】ワイヤレスアプリケーション発行装置の一つの実施形態を示す構造ブロック図。
【００１５】
【図８】ワイヤレスアプリケーション発行システムの一つの実施形態を示す構造ブロック図。
【００１６】
【図９】ワイヤレスアプリケーション発行システムを用いてＳＤＫをアップグレードする様子を示す説明図。
【００１７】
【図１０】ワイヤレスアプリケーション実行装置の一つの実施形態を示す構造ブロック図。
【００１８】
【図１１】ワイヤレスアプリケーションにＳＤＫ動的実装レイヤがロードされる様子を示す説明図。
【発明を実施するための形態】
【００１９】
本発明は、プロセス、装置、システム、組成、コンピュータ読み取り可能な記憶媒体上に実現されるコンピュータプログラム製品、および／または、プロセッサに接続される記憶装置上に保存される、および／または、プロセッサに接続される記憶装置により提供される命令を実行するように構成されるプロセッサ等のプロセッサを含む、様々な態様で実施可能である。本明細書において、これらの態様または本発明を実施する他のあらゆる形態を、手法とも称する。一般に、本明細書で開示する処理の各工程の順序は、本発明の要旨の範囲内で変更可能である。他に明記しない限り、あるタスクを実行するように構成されるものとして記載されるプロセッサまたは記憶装置等の構成要素は、任意の時点でそのタスクを実行するように一時的に構成される一般的な構成要素として実現されるものでもよいし、そのタスクを実行するように製造された専用の構成要素として実現されるものでもよい。本明細書において用いられる「プロセッサ」という用語は、コンピュータプログラム命令等のデータを処理するように構成される１つ以上のデバイス、回路および／または処理コアを示す。
【００２０】
本発明の１つまたは複数の実施形態の詳細を、本発明の原理を例示する添付の図面と共に、以下に記載する。本発明を実施形態に関連して説明するが、本発明はいかなる実施形態にも限定されるものではない。本発明の範囲は請求項によってのみ限定されるものであり、本発明には、多数の変形例、変更例およびそれらの等価物が包含される。以下、本発明が十分に理解されるように、数多くの具体的な詳細を説明するが、これらの詳細は例示に過ぎず、これらの具体的な詳細の一部または全部を省略した形態でも請求項に従って本発明を実施可能である。理解を容易にするために、本発明に関連する技術分野で周知の技術項目に関しては、本発明を不要に不明確にすることがないように、詳細に説明しない。
【００２１】
本出願は、ワイヤレスアプリケーションの実行に関する。ワイヤレスアプリケーションは、ソフトウェア開発キットの統合クラスライブラリの最新バージョンを動的に取得して、取得した最新バージョンをロードして実行する。クラスライブラリを動的にロードすることによって、現在のところＳＤＫと統合されているワイヤレスアプリケーションは、新しい機能を獲得する。
【００２２】
図１１は、ワイヤレスアプリケーションにロードされるＳＤＫ動的実装レイヤを示す説明図である。ワイヤレスクライアント１１１０は、図９のワイヤレスクライアント９１０に対応し、ワイヤレスアプリケーション１１３０を備える。ワイヤレスアプリケーション１１３０は、ＳＤＫ永続（permanent）インターフェイスレイヤ１１４０を備える。ワイヤレスアプリケーション１１３０の実行の際に、ワイヤレスアプリケーション１１３０は、サーバ１１２０からＳＤＫ動的実装レイヤ１１８０を呼び出す。
【００２３】
図１は、ワイヤレスアプリケーション発行処理の一つの実施形態を示すフローチャートである。処理１００は、図８のサーバ８２０により実行可能であり、以下の工程を備える。
【００２４】
１１０で、サーバは、ＳＤＫの永続インターフェイスレイヤをワイヤレスアプリケーションに統合する。ある実施形態において、ワイヤレスアプリケーションのコンパイルの際にスタティックリンクにより統合を行う。
【００２５】
このＳＤＫは、永続インターフェイスレイヤと動的実装レイヤとを備える。永続インターフェイスレイヤは、インタフェースプロトコルを備える。インタフェースプロトコルは、ＳＤＫ定義アプリケーションプログラミングインタフェースを参照する。たとえば、ＳＤＫは、GetTextAds（Point Position, String content, Font fontSize, Color textColor）のようなテキスト広告を取得するのに用いられるインタフェースを定義する。ある実施形態において、永続インターフェイスレイヤは、インタフェースプロトコルを介してワイヤレスアプリケーションに呼び出される。動的実装レイヤは、ワイヤレスアプリケーションによって呼び出されるインタフェース実装を備え、このインタフェース実装はインタフェースプロトコルに対応する。永続インターフェイスレイヤにおけるインタフェースプロトコルにより、ワイヤレスクライアントのワイヤレスアプリケーションは、動的実装レイヤにおいてインタフェース実装を呼び出す。
【００２６】
インタフェースプロトコルは、インタフェース用のプロトコルである。ある実施形態において、インタフェースプロトコルは、インタフェースクラスの名称、パブリックメソッドの名称、承認されたメソッド呼び出しパラメータの型および配列、ならびに、戻り値の型を定義する。ある実施形態において、インタフェースは、クラスを用いて実装される。インタフェース実装は、インタフェースプロトコルに定義されるインタフェースの特定の実装である。ある実施形態において、インタフェースプロトコルは、そのインタフェースプロトコルに準拠するメソッドの名称、パラメータの型および配列、戻り値の型等を備える。
【００２７】
１２０で、サーバは、統合されたワイヤレスアプリケーションを発行し、ＳＤＫの動的実装レイヤをインストールする。
【００２８】
ある実施形態において、発行およびインストールの作業は、クライアント端末のオペレーティングシステム（ＯＳ）によって決まる。たとえば、アンドロイドアプリの場合、アンドロイドアプリは、ＳＤＫの動的実装レイヤをアプリケーションパッケージファイル（ＡＰＫ）にパッケージ化する。
【００２９】
発行されたワイヤレスアプリケーションをダウンロードして、ワイヤレスクライアントで使用することができる。ある実施形態において、ワイヤレスアプリケーションの使用中に、または、ワイヤレスアプリケーションを次に更新する際に、永続インターフェイスレイヤにおいてインタフェースプロトコルにより定義されるインタフェースおよびサーバの動的実装レイヤ上にインソールされたインタフェース実装を用いて、ワイヤレスアプリケーションを呼び出す。
【００３０】
この例では、ＳＤＫは、永続インターフェイスレイヤと動的実装レイヤとに分割される。ある実施形態において、永続インターフェイスレイヤは、ワイヤレスアプリケーションにより呼び出し可能なインタフェースアプリケーションを備える。ある実施形態において、更新により、永続インターフェイスレイヤは変化しない。一つの態様として、動的実装レイヤは、インタフェースプロトコルに対応するインタフェース実装を備える。すなわち、動的実装レイヤは、インタフェース実装を介して、ワイヤレスアプリケーションにより呼び出されるものである。ある実施形態において、更新により、動的実装レイヤは変化する。ＳＤＫを２つのレイヤに分割することにより、比較的安定な永続インターフェイスレイヤにワイヤレスアプリケーションを統合して発行する。一方、動的実装レイヤは、ワイヤレスクライアントにより用いられるワイヤレスアプリケーションの永続インターフェイスレイヤによって呼び出され、動的実装レイヤのインタフェース実装用のクラスライブラリが、動的にロードされる。言い換えると、動的実装レイヤが動的にロードされる際に、コンパイルされたクラスがメモリにロードされる。ＳＤＫの更新では主にインタフェース実装が更新されるため、ＳＤＫが更新される場合に、サーバ上に存在する動的実装レイヤのみが更新される。ワイヤレスクライアントのワイヤレスアプリケーション部は、修正する必要がない。したがって、ワイヤレスアプリケーションの統合ＳＤＫが更新される際に、ワイヤレスアプリケーション自体（すなわち、ＳＤＫ以外の部分）を同時に更新する必要はない。このようにＳＤＫを２レイヤに分割することにより、ワイヤレスクライアントのワイヤレスアプリケーションをＳＤＫと共に更新しなければならなくなるような状況は大幅に削減される。さらに、ＳＤＫを２レイヤに分割することにより、ワイヤレスアプリケーションユーザに対して透過的になり、ユーザの経験を高めるとともに、ワイヤレスアプリケーション開発者にかかる開発の負担を軽減し、アプリケーションの発行コストならびに開発およびメンテナンスコストを抑制する。
【００３１】
図２は、ワイヤレスアプリケーション発行処理の別の実施形態を示すフローチャートである。処理２００は、図８のサーバ８２０により実行可能であり、以下の工程を備える。
【００３２】
２１０で、サーバは、ＳＤＫを分割して、永続インターフェイスレイヤにインタフェースプロトコルをカプセル化するとともに、動的実装レイヤにインタフェース実装をカプセル化する。
【００３３】
ある実施形態において、ＳＤＫは、アプリケーション開発の際に分割される。
【００３４】
従来、プロバイダは、インタフェースプロトコルとインタフェース実装の両方を含むソフトウェアパッケージ全体として、あるいは、単一のソフトウェアプログラムに含まれるものとして、ＳＤＫをリリース（公開）している。そして、ワイヤレスアプリケーション開発者は、ＳＤＫ全体をワイヤレスアプリケーションに統合して発行する。
【００３５】
一方、本実施形態では、インタフェースプロトコルは、パッケージに形成される。すなわち、インタフェースプロトコルは、永続インターフェイスレイヤとしてカプセル化される。ＳＤＫの永続インターフェイスレイヤは、統合ＳＤＫを備える（ワイヤレスアプリケーション等の）外部プログラムのインタフェース呼び出しプロトコルにより処理される。ある実施形態において、パッケージは、コンパイルされたデータであり、外部アプリケーションにより直接呼び出すことができる。統合ＳＤＫは、２つの独立したレイヤとして、動的実装レイヤと永続インターフェイスレイヤとを備える。インタフェース呼び出しプロトコルは、メソッドの名称、戻り値の型、承認されたパラメータ、入力−出力プロトコル等のインタフェース定義を備える。インタフェース実装は、独立したパッケージに形成される。すなわち、インタフェース実装は、動的実装レイヤとしてカプセル化される。インタフェース実装は、動的実装レイヤを実現するコンパイルされたコードである。ＳＤＫ動的実装レイヤは、ＳＤＫ永続インターフェイスレイヤにより定義されるインタフェースの特定の実装である。ＳＤＫ動的実装レイヤは、統合ＳＤＫを備える外部プログラムによって認識されない。言い換えると、外部プログラムは永続インターフェイスレイヤを呼び出し、動的実装レイヤはＳＤＫにより内部で呼び出される。ある実施形態において、ＳＤＫ統合外部プログラムのインタフェースプロトコルの前提条件を満たす限り、ＳＤＫ統合外部プログラムに影響を与えることなく、実装モードとメソッドとを変更する。次に、インタフェースプロトコルから形成されるパッケージを、コンパイルされ発行されている（すなわち、公表されている）ワイヤレスアプリケーションに統合する。発行されたワイヤレスアプリケーションは、ワイヤレスクライアントにより、インストールされ、使用される。また、インタフェース実装から形成されるパッケージは、サーバ上にインストールされる。ワイヤレスクライアントがワイヤレスアプリケーションをインストールまたは使用後に、ワイヤレスアプリケーションに統合されたＳＤＫは、新しいバージョンのインタフェース実装データパッケージをサーバから自律的に取得する。このようにして、ＳＤＫ統合プログラムは、ＳＤＫ統合プログラム自体をアップグレードすることなく、新しいＳＤＫアップグレードパッケージを取得することができる。この統合ＳＤＫは、永続インターフェイスレイヤを備えるが、動的実装レイヤは備えない。
【００３６】
前提条件の例として、永続インターフェイスレイヤがテキスト型の広告を取得するインタフェースのみを提供すると仮定すると、外部プログラムがテキスト型の広告を希望する場合には、新しい広告のプロバイダを含む動的実装レイヤ内の変化は、外部プログラムに影響を与えない。一方、永続インターフェイスレイヤが画像型の広告を新たにサポートし、外部プログラムが画像型の広告を希望する場合には、永続インターフェイスレイヤが前提条件を満たさなくなるため、アップグレードを行う必要がある。
【００３７】
ある実施形態において、ＳＤＫは、統合の際に、ワイヤレスアプリケーション開発担当者により分割される。ある実施形態において、第三者が、分割されたＳＤＫを提供する。統合を行う際に、ワイヤレスアプリケーション開発担当者は、分割されたＳＤＫの永続インターフェイスレイヤのみをアプリケーションに直接統合する。
【００３８】
２２０で、サーバは、ＳＤＫ永続インターフェイスレイヤをワイヤレスアプリケーションに統合して、統合されたワイヤレスアプリケーションを発行する。ある実施形態において、統合されたワイヤレスアプリケーションは、ダウンロードされ、ワイヤレスクライアントにより使用される。同時に、ＳＤＫ動的実装レイヤは、サーバ上にインストールされる。
【００３９】
２３０で、サーバは、ワイヤレスアプリケーションを用いてワイヤレスクライアントから送信された取得要求を受信したか否かを判定する。ワイヤレスアプリケーションを用いてワイヤレスクライアントから送信された取得要求を受信した場合には、制御は工程２４０に進む。一方、ワイヤレスアプリケーションを用いてワイヤレスクライアントから送信された取得要求を受信していない場合には、制御は工程２５０に進む。
【００４０】
取得要求は、動的実装レイヤのインタフェース実装をサーバから取得するように要求する。
【００４１】
サーバが取得要求を受信した場合、要求を受信したということは、発行されたワイヤレスアプリケーションが動的実装レイヤのデータに統合されていないことを意味する。この時点で、動的実装インタフェースのロードと更新とを行うために、動的実装レイヤのデータは、サーバから取得される。サーバが要求取得を受信していない場合、要求を受信していないということは、発行されたワイヤレスアプリケーションが元のバージョンの動的実装レイヤに統合されていることを意味する。一般に、元のバージョンは、発行段階でアプリケーションにパッケージ化された元のバージョンを指し、元のバージョンは、通常、その時点で発行された最も新しいバージョンである。ある実施形態において、ワイヤレスクライアントは、ダウンロードされたワイヤレスアプリケーションから、元の動的実装レイヤのインタフェース実装を自動的にロードする。必要な時点でまたは所定の時点で、取得要求がサーバに送信されて、インタフェース実装が更新され、その結果、動的実装レイヤが更新される。
【００４２】
ワイヤレスアプリケーションを用いてワイヤレスクライアントから送信された取得要求を受信した場合、サーバは、２４０で、サーバからワイヤレスクライアントに、動的実装レイヤのインタフェース実装を送信する。動的実装レイヤのインタフェース実装により、ワイヤレスクライアントにおいて、ワイヤレスアプリケーションは、永続インターフェイスレイヤのインタフェースプロトコルによって定義されたインタフェースを用いて、サーバから取得されたインタフェース実装を呼び出し、インタフェース実装用のクラスライブラリを動的にロードする。
【００４３】
ある実施形態において、クラスライブラリはアプリケーション開発段階で導入され、コンパイルおよびパッケージ化後に、クラスライブラリはワイヤレスアプリケーションと共に発行される。このようなアプローチをクラスライブラリのスタティックローディングと呼ぶ。これに対して、発行されたワイヤレスクライアントのアプリケーションの実行中にクラスライブラリを取得し、動的にロードして、対応するロジックを実行する場合、このアプローチをクラスライブラリのダイナミックローディングと呼ぶ。
【００４４】
工程２４０で、インタフェース実装用のクラスライブラリを動的にロードする。すなわち、ワイヤレスアプリケーションの実行中に、インタフェース実装用のクラスライブラリを取得し、取得されたクラスライブラリを動的にロードし、対応するロジックを実行する。
【００４５】
２５０で、サーバは、ワイヤレスクライアントから送信されたクエリ（問い合わせ）要求を受信したか否かを判定する。ワイヤレスクライアントから送信されたクエリ要求を受信した場合には、制御は工程２６０に進む。一方、ワイヤレスクライアントから送信されたクエリ要求を受信していない場合には、制御は工程２５０を繰り返す。
【００４６】
クエリ要求は、ワイヤレスアプリケーションの永続インターフェイスレイヤと動的実装レイヤのバージョン情報を備え、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバが有しているか否かを問い合わせるために用いられる。
【００４７】
２６０で、サーバは、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンが存在することを確認し、ワイヤレスクライアントに更新バージョンを送信する。ワイヤレスクライアントは、更新バージョンを用いて、ワイヤレスクライアントのワイヤレスアプリケーションの永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせを更新する。
【００４８】
従来、ワイヤレスアプリケーションの統合ＳＤＫを更新する際に、ワイヤレスアプリケーション自体（言い換えると、ＳＤＫ以外の部分）も同時に更新する必要があるという問題があった。しかし、上述の処理２００では、永続インターフェイスレイヤは動的実装レイヤと比べてアップグレードされる回数が少なく、ワイヤレスアプリケーションを更新することなく動的実装レイヤ自体が更新されるため、更新ＳＤＫとともにワイヤレスクライアントのワイヤレスアプリケーションをアップグレードする必要があるという状況が削減される。また、上述の処理２００は、ワイヤレスアプリケーションユーザに透過的であり、ワイヤレスアプリケーションユーザの経験を高めるとともに、ワイヤレスアプリケーション開発者にかかる開発の負担を軽減し、アプリケーションの発行コストならびに開発およびメンテナンスコストを抑制する。
【００４９】
図３は、ワイヤレスアプリケーション発行処理のさらに別の実施形態を示すフローチャートである。処理３００は、図８のサーバ８２０により実行可能であり、以下の工程を備える。
【００５０】
３１０で、サーバは、ＳＤＫを分割して、永続インターフェイスレイヤにインタフェースプロトコルをカプセル化するとともに、動的実装レイヤにインタフェース実装をカプセル化する。
【００５１】
ある実施形態において、ＳＤＫは、リフレクション機構に基づいて分割される。Ｊａｖａ（登録商標）におけるリフレクション機構は、コンパイルの際にクラスの名称を知らないままランタイム（実行時間）の間に調査可能なクラスを参照する。たとえば、リフレクション機構（リフレクション法とも称する）は、Ｊａｖａ（登録商標）のリフレクトパッケージを利用する。リフレクションは、.NETの機構である。ある実施形態において、リフレクションにより、ワイヤレスアプリケーションは、（クラス、構造体、デリゲート、インタフェースおよびENUMを含む）.NETにおける各型の要素を取得する。リフレクション機構は、メソッド、属性、イヴェント、コンストラクタ等を含む。ある実施形態において、リフレクション機構は、各要素の名称、修飾子およびパラメータ等を取得する。リフレクションが存在する場合には、各型に関する十分な知識を持つことが可能である。ワイヤレスクライアントのワイヤレスアプリケーションがコンストラクタに関する情報を所得すると、ワイヤレスアプリケーションのコンパイルの際にオブジェクトの型が分からなくても、リフレクション機構は、このオブジェクトを直接生成することができる。
【００５２】
ある実施形態において、リフレクション機構は、ＳＤＫを分割することによって、分割されたＳＤＫの実装を容易にし、ワイヤレスアプリケーション発行スキームの実装コストを削減する。
【００５３】
３２０で、サーバは、ＳＤＫの永続インターフェイスレイヤをワイヤレスアプリケーションに統合し、統合されたワイヤレスアプリケーションを発行し、ＳＤＫの動的実装レイヤをサーバ上にインストールする。
【００５４】
たとえば、ＳＤＫの永続インターフェイスレイヤは、コンパイルの際に、スタティックリンクを用いてワイヤレスアプリケーションに静的にパッケージ化される。
【００５５】
ある実施形態において、ワイヤレスアプリケーションは、元のバージョンのＳＤＫ動的実装レイヤと、当初は統合されていない。言い換えると、ＳＤＫ動的実装レイヤコードの元のバージョンは、コンパイルの際に、ワイヤレスアプリケーションにリンクされていない。
【００５６】
３３０で、ワイヤレスクライアントは、統合されたワイヤレスアプリケーションをダウンロードして、ワイヤレスアプリケーションをインストールし、ワイヤレスアプリケーションまたはその組み合わせを使用する。
【００５７】
３４０で、ワイヤレスクライアントは、統合されたワイヤレスアプリケーションが元のバージョンのＳＤＫ動的実装レイヤを備えるか否かを判定する。統合されたワイヤレスアプリケーションが元のバージョンのＳＤＫ動的実装レイヤを備える場合には、制御は工程３５０に進む。統合されたワイヤレスアプリケーションが元のバージョンのＳＤＫ動的実装レイヤを備えていない場合には、制御は工程３６０に進む。
【００５８】
たとえば、ある状況において、ワイヤレスアプリケーションは、元のバージョンのＳＤＫ動的実装レイヤと統合されていない。この場合には、ワイヤレスクライアントは、元のバージョンのＳＤＫ動的実装レイヤをサーバからダウンロードして取得し、その後、ワイヤレスアプリケーションを動的にロードして、呼び出す。別の状況において、ＳＤＫは、元のバージョンのＳＤＫ動的実装レイヤを備える。この場合には、ワイヤレスクライアントは、ワイヤレスアプリケーションの実行中に、元のバージョンのＳＤＫ動的実装レイヤを直接ロードして呼び出し、その後、新しいバージョンのＳＤＫ動的実装レイヤが存在するか否かを問い合わせる要求をサーバに送信する。新しいバージョンのＳＤＫ動的実装レイヤが存在する場合には、ワイヤレスクライアントは、新しいバージョンのＳＤＫ動的実装レイヤをダウンロードした後、新しいバージョンのＳＤＫ動的実装レイヤを呼び出してロードする。ある実施形態において、既存のバージョンのＳＤＫ動的実装レイヤがダウンロードされたバージョンのＳＤＫ動的実装レイヤに置き換わる。別の状況では、ワイヤレスアプリケーションの実行中に、ワイヤレスクライアントは、新しいバージョンのＳＤＫ動的実装レイヤが存在するか否かを問い合わせる要求をサーバに送信する。新しいバージョンのＳＤＫ動的実装レイヤが存在する場合には、ワイヤレスクライアントは、新しいバージョンのＳＤＫ動的実装レイヤをダウンロードした後、新しいバージョンのＳＤＫ動的実装レイヤを呼び出してロードする。新しいバージョンが存在しない場合には、ワイヤレスクライアントは、プロトコルに基づいて（たとえば、パスおよびファイル名称に基づいて）、ＳＤＫ動的実装レイヤのバージョン（すなわち、元のバージョンの動的実装レイヤ）を見つける。たとえば、元のバージョンの動的実装レイヤは、特定のディレクトリに保存されているが、アップグレードに成功すると、新しいバージョンの動的実装レイヤが、特定のディレクトリ内の元のバージョンの動的実装レイヤに置き換わる。
【００５９】
３５０で、ワイヤレスクライアントのワイヤレスアプリケーションは、ワイヤレスクライアント上の統合ＳＤＫの永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、元のバージョンの動的実装レイヤにおけるインタフェース実装を呼び出し、インタフェース実装用のクラスライブラリを動的にロードする。次に、制御は工程３８０に進む。
【００６０】
ある実施形態において、インタフェース実装用のクラスライブラリが動的にロードされる。すなわち、ワイヤレスアプリケーションの実行中に、ワイヤレスクライアントは、インタフェース実装用のクラスライブラリを取得し、その後、ワイヤレスクライアントは、クラスライブラリを動的にロードして、対応するロジックを実行する。
【００６１】
統合されたワイヤレスアプリケーションが元のバージョンのＳＤＫ動的実装レイヤを備えていない場合には、３６０で、ワイヤレスクライアントのワイヤレスアプリケーションは、ＳＤＫ動的実装レイヤのインタフェース実装をサーバから取得する。
【００６２】
ある実施形態において、ワイヤレスアプリケーションは、元のバージョンのＳＤＫ動的実装レイヤと、当初は統合されていない。したがって、３４０で、ワイヤレスアプリケーションが元のバージョンのＳＤＫ動的実装レイヤを備えていないことをワイヤレスクライアントが確認すると、制御は工程３６０に進む。
【００６３】
３７０で、ワイヤレスクライアントのワイヤレスアプリケーションは、ＳＤＫ永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、サーバから取得したインタフェース実装を呼び出し、インタフェース実装用のクラスライブラリを動的にロードする。
【００６４】
３８０で、ワイヤレスクライアントのワイヤレスアプリケーションは、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの任意の組み合わせの更新バージョンをサーバが有しているか否かを判定する。永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの任意の組み合わせの更新バージョンをサーバが有している場合には、制御は工程３９０に進む。永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの任意の組み合わせの更新バージョンをサーバが有していない場合には、制御は工程３８０を繰り返す。
【００６５】
ＳＤＫの初期化の際に、ワイヤレスクライアントは、現在のバージョンのローカルＳＤＫ関連データパッケージを取得する。ある実施形態において、現在のバージョンは１つの番号であり、サーバは、現在サーバ上に存在する現在のバージョンの最新ＳＤＫ関連データパッケージをクライアントに返送する。サーバ上のバージョンがクライアントのＳＤＫの現在のバージョンよりも新しい場合には、すなわち、サーバがより新しいバージョンを実行中の場合には、ワイヤレスクライアントは、サーバから得たより新しいＳＤＫに更新する。
【００６６】
３９０で、ワイヤレスクライアントのワイヤレスアプリケーションは、ＳＤＫ永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせのより新しいバージョンをサーバからダウンロードして、ワイヤレスクライアントにおけるＳＤＫ永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせを更新する。
【００６７】
ワイヤレスアプリケーションの発行およびＳＤＫのアップグレードに関して、従来のワイヤレスアプリケーションの発行およびＳＤＫのアップグレードと比較して、さらに説明する。（
【００６８】
たとえば、広告ＳＤＫがインタフェースAdObject.displayAd()を提供すると仮定する。アプリケーションは、このインタフェースを呼び出して、広告コンテントを取得する。ＳＤＫの永続インターフェイスレイヤは、このインタフェースAdObject.displayAd()を呼び出す｛リフレクション機構を用いて、動的実装レイヤのAdObjectImp.displayAd()を呼び出す｝。元の実装は実装AdObjectImp.displayAd(print "ad1")を提供し、この時に、AdObject.displayAdを呼び出したアプリケーションはad1をプリントする。この際に、動的実装レイヤが新しいバージョンAdObjectImp.displayAd(print "ad1")に更新されている場合には、アプリケーションがAdObject.displayAd()を呼び出すと、AdObject.displayAd()を呼び出したアプリケーションはad2をプリントする。したがって、AdObject.displayAd()は、永続インターフェイスレイヤに属し、アプリケーションにリンクされる。すべてのバージョンのAdObjectImp.displayAdは、動的実装レイヤに属し、アプリケーションにはリンクされない。ただし、永続インターフェイスレイヤが実行されると、AdObjectImp.displayAdは動的にロードされて呼び出される。
【００６９】
図４は、従来のワイヤレスアプリケーション発行およびＳＤＫアップグレード処理を示す説明図である。従来、ワイヤレスアプリケーション領域では、アプリケーションへの静的パッケージ化によりＳＤＫ統合が行われている。従来のＳＤＫ統合には、ワイヤレスアプリケーションをアップグレードするべき頻度が高いことやアップグレードのコストが高くつくという問題があった。これは、ＳＤＫをアップグレードするたびに、ＳＤＫに統合されているすべてのアプリケーションを統合し、コンパイルし、パッケージ化して再び配信する必要があり、クライアントのエンドユーザは処理のダウンロードと更新とを行う必要があるためである。先に行われる処理がすべて実行された後で初めて、最終的なＳＤＫの更新を行うことができる。図４において、アプリケーションにおけるＳＤＫは、アプリケーションへのコンパイルの際に、その全体が静的にリンクされ、その後で、アプリケーションが発行される。言い換えると、ＳＤＫ全体がアプリケーションに統合された後で、ＳＤＫを統合したアプリケーションが発行される。ワイヤレスクライアントがアプリケーションをインストールして用いた後でアプリケーションにおけるＳＤＫをアップグレードする必要があれば、アプリケーション自体およびそれに統合されているＳＤＫを含むアプリケーション全体をサーバからダウンロードしなければならない。さらに、新しいバージョンのＳＤＫが発行されるたびに、たとえワイヤレスアプリケーション自体は全く修正されていない場合でも、ワイヤレスアプリケーション開発者は、コードを修正して再発行しなければならない。また、ユーザ側のワイヤレスアプリケーション自体も更新しなければならない。ワイヤレスアプリケーション開発者にとって、このような作業によって、アプリケーション発行コストのみならず、余分な開発およびメンテナンスコストがかかる。また、この作業により、ユーザ側のワイヤレスアプリケーションに関するユーザの経験を損なう結果となる。
【００７０】
図５は、ワイヤレスアプリケーション発行およびＳＤＫアップグレード処理の一つの実施形態を示す説明図である。ＳＤＫ永続インターフェイスレイヤと動的実装レイヤが分割されている様子を図５に示す。アプリケーションは、ＳＤＫ永続インターフェイスレイヤにのみ統合されている。言い換えると、ＳＤＫ永続インターフェイスレイヤは、コンパイルの際にアプリケーションに静的にリンクされた後に発行される。一方、ＳＤＫ動的実装レイヤは、アプリケーションが実行されている間に、アプリケーションに動的にロードされる。ＳＤＫをアップグレードする必要がある場合、ＳＤＫ動的実装レイヤのみが修正される。アプリケーション自体は変更する必要がない。したがって、ワイヤレスアプリケーションは、ワイヤレスアプリケーション自体を変更する必要がなく、ユーザは経験を高めることができる。さらに、ワイヤレスアプリケーション開発者は、アプリケーションのさらなる開発およびメンテナンスを行う必要がないため、アプリケーションの発行コストおよびアプリケーションの開発およびメンテナンスコストを削減することができる。
【００７１】
ある実施形態において、動的クラスライブラリロード機構は、（ほとんど変化しない）ＳＤＫの永続インターフェイスレイヤを（定期的な更新が必要な）ＳＤＫの動的実装レイヤから分離する。永続インターフェイスレイヤのみをワイヤレスクライアントのアプリケーションにリンクさせてパッケージ化する一方で、動的実装レイヤはランタイムの間に動的クラスライブラリのロードと呼び出しとを用いてバンドルされる。この結果、ワイヤレスクライアントのワイヤレスアプリケーションをＳＤＫと共にアップグレードしなければならない状況は削減される。基本となる抽象インターフェイスレイヤ（すなわち、ＳＤＫの永続インターフェイスレイヤ）が変化しない限り、ワイヤレスアプリケーションは、ユーザに対して透過的に、実行中に自動的にアップグレード可能である。
【００７２】
図６は、ワイヤレスアプリケーション実行処理の一つの実施形態を示すフローチャートである。処理６００は、図８のクライアント８１０により実行可能であり、以下の工程を備える。
【００７３】
６１０で、クライアントは、統合ＳＤＫの永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得する。
【００７４】
ＳＤＫは、永続インターフェイスレイヤと動的実装レイヤとを備える。永続インターフェイスレイヤは、ワイヤレスアプリケーションにより呼び出し可能なインタフェースプロトコルを備える。本出願に開示される処理は、ワイヤレスアプリケーションに限定されるものではなく、他のアプリケーションにも適用可能である。永続インターフェイスレイヤは、ワイヤレスアプリケーションに統合される。動的実装レイヤは、インタフェース実装を備える。インタフェース実装は、永続インターフェイスレイヤのインタフェースプロトコルに対応し、インタフェースプロトコルにより呼び出し可能である。動的実装レイヤは、サーバ上にインストールされる。ＳＤＫの分割は、永続インターフェイスレイヤとしてのＳＤＫにインタフェースプロトコルをカプセル化すること、および、動的実装レイヤとしてのＳＤＫにインタフェース実装をカプセル化することを含む。ある実施形態において、ＳＤＫはリフレクション機構を用いて分割される。
【００７５】
ある実施形態において、ワイヤレスクライアントは、まず、ＳＤＫの永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得する。
【００７６】
６２０で、クライアントは、データパッケージを用いて、ワイヤレスアプリケーションを実行する。
【００７７】
ある実施形態において、ワイヤレスクライアントは、状況に応じて、データパッケージを用いてワイヤレスアプリケーションを実行する。
【００７８】
たとえば、ワイヤレスアプリケーションが元のバージョンの動的実装レイヤに統合されている場合には、ワイヤレスアプリケーションは、永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、元のバージョンの動的実装レイヤにおけるインタフェース実装を呼び出す。さらに、ワイヤレスアプリケーションは、インタフェース実装用のクラスライブラリを動的にロードする。ワイヤレスアプリケーションが元のバージョンの動的実装レイヤに統合されていない場合には、ワイヤレスアプリケーションは、取得要求をサーバに送信する。取得要求は、動的実装レイヤのインタフェース実装をサーバから取得することを要求する。サーバがクライアントに動的実装レイヤのインタフェース実装を送信した後、ワイヤレスアプリケーションは、サーバから送信された動的実装レイヤのインタフェース実装を受信する。さらに、ワイヤレスアプリケーションは、永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、サーバから取得したインタフェース実装を呼び出し、インタフェース実装用のクラスライブラリを動的にロードする。
【００７９】
ある実施形態において、ワイヤレスアプリケーションのデータパッケージを用いてワイヤレスアプリケーションを実行した後に、すなわち、インタフェース実装用のクラスライブラリを動的にロードした後に、ワイヤレスアプリケーションは、クエリ要求をサーバに送信する。クエリ要求は、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンがサーバ上に存在するか否かを問い合わせる。サーバ上に更新バージョンが存在する場合には、ワイヤレスクライアントは、サーバから返送された永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンを受信して、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンに更新する。
【００８０】
ある実施形態において、ＳＤＫに統合されたワイヤレスアプリケーションを有するワイヤレスクライアントは、ワイヤレスアプリケーション自体（言い換えると、ＳＤＫ以外の部分）を更新する必要はない。代わりに、ワイヤレスクライアントは、ワイヤレスアプリケーションに統合されたＳＤＫのみを更新する。このような更新処理により、ワイヤレスクライアントのワイヤレスアプリケーションをＳＤＫとともにアップグレードしなければならない状況を削減でき、ワイヤレスアプリケーションユーザのユーザ経験を高めることができる。
【００８１】
ワイヤレスアプリケーション実行処理は、上述の処理の少なくとも一つで、ワイヤレスアプリケーション発行処理に対応することに留意されたい。したがって、説明を簡潔にするために、上述の処理の少なくとも一つに関する詳細は省略する。
【００８２】
図７は、ワイヤレスアプリケーション発行装置の一つの実施形態を示す構造ブロック図である。装置７００は、図８のサーバ８２０に実装可能である。装置７００は、統合モジュール７１０と、発行モジュール７２０と、更新モジュール７５０と、を備える。
【００８３】
統合モジュール７１０は、ＳＤＫの永続インターフェイスレイヤをワイヤレスアプリケーションに統合する。ＳＤＫは、永続インターフェイスレイヤと動的実装レイヤとを備える。永続インターフェイスレイヤは、ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、一方、動的実装レイヤは、インタフェース実装を備える。動的実装レイヤのインタフェース実装は、永続インターフェイスレイヤのインタフェースプロトコルに対応する。永続インターフェイスレイヤのインタフェースプロトコルにより、ワイヤレスクライアントにおけるワイヤレスアプリケーションは、動的実装レイヤのインタフェース実装を呼び出す。
【００８４】
発行モジュール７２０は、統合されたワイヤレスアプリケーションを発行し、ＳＤＫの動的実装レイヤをサーバ上にインストールする。ワイヤレスアプリケーションの発行後、ワイヤレスクライアントは、永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、発行されたワイヤレスアプリケーションをダウンロードおよび使用して、動的実装レイヤのインタフェース実装を呼び出すことができる。
【００８５】
ある実施形態において、ワイヤレスアプリケーション発行装置７００は、さらに、分割モジュール７３０を備える。統合モジュール７１０がＳＤＫの永続インターフェイスレイヤをワイヤレスアプリケーションに統合し、永続インターフェイスレイヤとしてのＳＤＫにインタフェースプロトコルをカプセル化するとともに動的実装レイヤとしてのＳＤＫにインタフェース実装をカプセル化する前に、分割モジュール７３０はＳＤＫを分割する。ある実施形態において、ＳＤＫは、リフレクション機構により分割される。
【００８６】
ある実施形態において、ワイヤレスアプリケーション発行装置７００は、さらに、送信モジュール７４０を備える。発行モジュール７２０が統合されたワイヤレスアプリケーションを発行し、ＳＤＫの動的実装レイヤをサーバ上にインストールした後、送信モジュール７４０は、ワイヤレスアプリケーションを用いてワイヤレスクライアントから送信された取得要求を取得する。取得要求は、動的実装レイヤのインタフェース実装をサーバから取得することを要求するために用いられる。取得要求は、動的実装レイヤのインタフェース実装をサーバからワイヤレスクライアントに送信する基準として用いられる。永続インターフェイスレイヤのインタフェースプロトコルにより、ワイヤレスクライアントにおけるワイヤレスアプリケーションは、サーバから取得したインタフェース実装を呼び出して、インタフェース実装用のクラスライブラリを動的にロードする。ある実施形態において、ワイヤレスクライアントにおけるワイヤレスアプリケーションは、永続インターフェイスレイヤのインタフェースプロトコルにより定義されたインタフェースを用いて、呼び出される。
【００８７】
ある実施形態において、統合モジュール７１０は、ＳＤＫの永続インターフェイスレイヤをワイヤレスアプリケーションに統合するのとは異なる時に、元のバージョンの動的実装レイヤをワイヤレスアプリケーションに統合する。ある実施形態において、統合モジュール７１０は、ＳＤＫの永続インターフェイスレイヤのワイヤレスアプリケーションへの統合よりも前に、元のバージョンの動的実装レイヤをワイヤレスアプリケーションに統合する。ある実施形態において、統合モジュール７１０は、ＳＤＫの永続インターフェイスレイヤのワイヤレスアプリケーションへの統合より後に、元のバージョンの動的実装レイヤをワイヤレスアプリケーションに統合する。発行モジュール７２０は、元のバージョンのＳＤＫ永続インターフェイスレイヤと元のバージョンの動的実装レイヤとを統合した統合ワイヤレスアプリケーションを発行して、ワイヤレスアプリケーションをダウンロード可能にする。発行モジュール７２０により、ワイヤレスクライアントのワイヤレスアプリケーションは、永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、元のバージョンの動的実装レイヤにおけるインタフェース実装を呼び出し、インタフェース実装用のクラスライブラリを動的にロードし、ＳＤＫの動的実装レイヤをサーバ上にインストールすることができる。発行モジュール７２０は、統合されたワイヤレスアプリケーションをワイヤレスクライアントがダウンロードおよび使用できるようにする。
【００８８】
ある実施形態において、送信モジュール７４０によりサーバが動的実装レイヤのインタフェース実装をワイヤレスクライアントに送信した後に、発行モジュール７２０は、ワイヤレスクライアントにより送信されたクエリ要求を受信する。クエリ要求を用いて、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバが有しているか否かを問い合わせ、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバが有していることを確認して、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバからワイヤレスクライアントに送信する。ワイヤレスクライアントは、更新バージョンを用いて、ワイヤレスクライアントのワイヤレスアプリケーションの永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせを更新する。
【００８９】
発行モジュール７２０が元のバージョンのＳＤＫ永続インターフェイスレイヤおよび動的実装レイヤに統合されたワイヤレスアプリケーションを発行し、ワイヤレスアプリケーションをワイヤレスクライアントがダウンロードおよび使用できるようにした後で、更新モジュール７５０は、ワイヤレスクライアントから送信されたクエリ要求を受信し、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバが有していることを確認して、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバからワイヤレスクライアントに送信する。これにより、ワイヤレスクライアントは、ワイヤレスクライアントのワイヤレスアプリケーションの永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせを更新する。
【００９０】
ある実施形態において、ワイヤレスアプリケーション発行装置７００は、サーバ上にインストールされる。
【００９１】
ワイヤレスアプリケーション発行装置７００を用いて、上述した対応するワイヤレスアプリケーション発行処理の少なくとも１つを実行する。さらに、ワイヤレスアプリケーション発行装置７００は、上述した対応する処理と同様の効果を有している。説明を簡潔にするために、上述した処理の詳細は省略する。
【００９２】
図８は、ワイヤレスアプリケーション発行システムの一つの実施形態を示す構造ブロック図である。システム８００は、ワイヤレスクライアント８１０とＳＤＫアップグレードサーバ８２０とを備える。ワイヤレスクライアント８１０は、ネットワーク８３０を介して、ＳＤＫアップグレードサーバ８２０に接続される。
【００９３】
ＳＤＫアップグレードサーバ８２０は、ワイヤレスアプリケーション発行装置を備える。たとえば、サーバ８２０は、図７のワイヤレスアプリケーション発行装置７００を備える。
【００９４】
図９は、ワイヤレスアプリケーション発行システムを用いてＳＤＫをアップグレードする様子を示す説明図である。システム９００は、ワイヤレスクライアント９１０とＳＤＫアップグレードサーバ９２０とを備える。ワイヤレスクライアント９１０は、図８のワイヤレスクライアント８１０に対応する。ＳＤＫアップグレードサーバ９２０は、図８のＳＤＫアップグレードサーバ８２０に対応する。
【００９５】
ある実施形態において、ＳＤＫアップグレードサーバ９２０がワイヤレスクライアント９１０上にロードされたワイヤレスアプリケーション９３０にＳＤＫ永続インターフェイスレイヤ９４０を統合する場合、ＳＤＫ永続インターフェイスレイヤ９４０は、動的インタフェースロードモジュール９５０と、自動検出／アップグレードモジュール９６０と、ダウンロード管理モジュール９７０と、を備える。動的インタフェースロードモジュール９５０は、ワイヤレスアプリケーションの実行中に、動的実装レイヤ用のクラスライブラリを動的にロードして、ＳＤＫまたはワイヤレスアプリケーションにより提供される機能を完了させる。自動検出／アップグレードモジュール９６０は、ＳＤＫ初期化の際に、永続インターフェイスレイヤの現在のバージョンとＳＤＫアップグレードサーバ９２０上に存在する動的実装レイヤの最新バージョンとを比較して、ランタイム更新作業を行うべきか否かを判定する。ランタイム更新作業を行う必要がある場合には、ダウンロード管理モジュール９７０は、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの最新バージョンのデータパッケージをＳＤＫアップグレードサーバ９２０からダウンロードして、アップグレードを実行する。
【００９６】
ワイヤレスクライアント９１０は、ＳＤＫアップグレードサーバ９２０から統合されたワイヤレスアプリケーションをダウンロードし、統合されたワイヤレスアプリケーション９３０をインストールして用いる。ある実施形態において、ワイヤレスクライアント９１０は、ワイヤレスアプリケーションのインストール中または実行中に、ワイヤレスアプリケーションのＳＤＫ永続インターフェイスレイヤ９４０における動的インタフェースロードモジュール９５０を用いて、ＳＤＫ動的実装レイヤ９８０のインタフェース実装をＳＤＫアップグレードサーバ９２０から取得し、インタフェース実装用のクラスライブラリの動的なロードおよび呼び出しを行う。次に、ワイヤレスクライアント９１０は、自動検出／アップグレードモジュール９６０を用いて、ワイヤレスクライアント９１０が対応する更新バージョンを有するか否かを問い合わせるクエリをＳＤＫアップグレードサーバ９２０に対して定期的にまたは随時行うことができる。ワイヤレスクライアント９１０が対応する更新バージョンを有する場合には、次に、ワイヤレスクライアント９１０は、ダウンロード管理モジュール９７０を用いてＳＤＫアップグレードサーバ９２０から対応する更新バージョンをダウンロードして、ワイヤレスクライアント９１０のＳＤＫ永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせを更新する。
【００９７】
ある実施形態において、ＳＤＫ動的実装レイヤ９８０は、ＳＤＫアップグレードサーバ９２０上にインストールされて、インタフェース実装を更新する。さらに、ＳＤＫアップグレードサーバ９２０は、ＳＤＫ永続インターフェイスレイヤ９４０を更新する。図面を簡略化するために、ＳＤＫ動的実装レイヤ９８０が単独で図示されていることに留意されたい。ある実施形態において、ＳＤＫ動的実装レイヤ９８０のアップグレードに別のサーバが用いられる。ある実施形態において、ＳＤＫ永続インターフェイスレイヤ９４０の更新に関与するサーバ上に、ＳＤＫ動的実装レイヤ９８０のアップグレードもインストールされる。言い換えると、１つのサーバで複数の機能部が更新される。
【００９８】
統合されたＳＤＫ永続インターフェイスレイヤ９４０を備えるワイヤレスアプリケーション９３０は、ワイヤレスクライアント９１０上にインストールされる。ウェブアプリケーション９３０の実行時に、ウェブアプリケーション９３０は、動的インタフェースロードモジュール９５０を用いて、動的実装レイヤ９８０用のクラスライブラリを動的にロードして、広告をロードする等のＳＤＫまたはアプリケーションにより提供される機能を完了させる。ワイヤレスアプリケーション９３０は、自動検出／アップグレードモジュール９６０を用いて、ＳＤＫアップグレードサーバ９２０に定期的または随時問い合わせを行って、ＳＤＫアップグレードサーバ９２０で、ＳＤＫ動的実装レイヤ９８０、永続インターフェイスレイヤ９４０、またはこれらの組み合わせが更新されているか否かを判定する。ＳＤＫの初期化の際に、自動検出／アップグレードモジュール９６０は、ＳＤＫ動的実装レイヤ９８０、永続インターフェイスレイヤ９４０、またはこれらの組み合わせの現在のバージョンをＳＤＫアップグレードサーバ９２０上に存在する最新バージョンと比較して、更新作業を行うべきか否かを判定する。ある実施形態において、ＳＤＫの初期化の際に、自動検出／アップグレードモジュール９６０は、ローカルＳＤＫ動的実装レイヤのデータパッケージの現在のバージョン番号を取得する。通常、ローカルＳＤＫ動的実装レイヤのデータパッケージの現在のバージョン番号は１つの番号である。サーバは、サーバ上に現在存在するＳＤＫ動的実装レイヤのデータパッケージの最新バージョンをクライアントに返送する。サーバのバージョン番号がクライアントＳＤＫの現在のバージョン番号と一致しない場合には、新しいバージョンが存在し、更新を行うことができることを意味する。さらに、ＳＤＫ永続インターフェイスレイヤ９４０は比較的安定であるが、アップグレード可能である。したがって、永続インターフェイスレイヤのバージョンは、ＳＤＫアップグレードサーバ９２０から対応する動的クラスライブラリのバージョンをダウンロードするか否かを判定する基準として用いられる。ＳＤＫアップグレードサーバ９２０は、ワイヤレスクライアント９１０からの最新のバージョンを問い合わせる要求に応じて、最新のバージョン番号と対応するバージョン用のパッケージのダウンロードアドレスとを返送する。その後、ダウンロード管理モジュール９７０は、（永続インターフェイスレイヤのデータパッケージおよび動的実装レイヤのデータパッケージを含む）最も最近更新された動的クラスライブラリ実装パッケージをＳＤＫアップグレードサーバ９２０からダウンロードして、更新を実行する。
【００９９】
上述したシステム９００は、自己広告ＳＤＫおよび第三者広告ＳＤＫを用いて、比較的永続的なインタフェース実装広告を指向するロジックを含むＳＤＫのみを発行し、この結果、ワイヤレスアプリケーション開発者は、ワイヤレスアプリケーションに統合された広告ＳＤＫをサーバ上で構成することができる。ワイヤレスアプリケーションが実行される際に、ワイヤレスクライアントは、ＳＤＫ統合クラスライブラリの最新バージョンをサーバから取得し、ＳＤＫ統合クラスライブラリの最新バージョンをロードおよび実行する。したがって、広告ＳＤＫをワイヤレスアプリケーションに統合した後に頻繁に更新する必要がなくなる。
【０１００】
システム９００は、ワイヤレス広告ＳＤＫアップグレードにのみ有用なのではなく、ワイヤレスクライアント広告を最適化する目的で複数の広告ＳＤＫを統合する連合型のＳＤＫを更新およびアップグレードするのにも適している。ワイヤレスアプリケーション自体がＳＤＫを用いる場合には、ワイヤレスアプリケーションを用いて、ワイヤレスアプリケーション自体を更新し、機能をアップグレードする。
【０１０１】
システム９００は、以下の利点を有する。
【０１０２】
（１）ワイヤレスアプリケーションは、更新されなくても、広告を取得および掲載する新しい能力を獲得する。
【０１０３】
（２）ワイヤレスアプリケーションは、ワイヤレスアプリケーションを更新しなくても、新しい広告ＳＤＫと統合でき、以前に統合されたＳＤＫのバージョンを更新することができる。
【０１０４】
（３）サーバ上の構成を用いて、広告に対するクライアント統合ワイヤレス広告ＳＤＫの比を増減させることができる。
【０１０５】
（４）ワイヤレスアプリケーション自体は、この解決策を採用して、クラスライブラリのランタイムダウンロードおよびアプリケーション機能の更新を行う。したがって、ダウンロード、インストール、および、ユーザがワイヤレスアプリケーションを更新する場合の他の作業を削減することができる。
【０１０６】
図１０は、ワイヤレスアプリケーション実行装置の一つの実施形態を示す構造ブロック図である。装置１０００は、取得モジュール１０１０と実行モジュール１０２０とを備える。ワイヤレスアプリケーション実行装置１０００は、図８のワイヤレスクライアント８１０にインストールされるものでもよい。
【０１０７】
取得モジュール１０１０は、ＳＤＫ永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得する。実行モジュール１０２０は、ワイヤレスアプリケーションのデータパッケージを用いて、ワイヤレスアプリケーションを実行する。ＳＤＫは、永続インターフェイスレイヤおよび動的実装レイヤを備える。永続インターフェイスレイヤは、ワイヤレスアプリケーションに統合され、ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備える。動的実装レイヤは、サーバ上にインストールされ、インタフェースプロトコルに対応するインタフェース実装を備える。
【０１０８】
ある実施形態において、実行モジュール１０２０は、取得要求をサーバに送信する。取得要求は、動的実装レイヤのインタフェース実装をサーバから取得することを要求する。ワイヤレスアプリケーションは、サーバから返送された動的実装レイヤのインタフェース実装を受信する。ワイヤレスアプリケーションは、また、永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、サーバから取得したインタフェース実装を呼び出す。さらに、ワイヤレスアプリケーションは、インタフェース実装用のクラスライブラリを動的にロードする。
【０１０９】
ある実施形態において、ワイヤレスアプリケーションは、元のバージョンの動的実装レイヤに統合される。この場合には、実行モジュール１０２０は、永続インターフェイスレイヤにおけるインタフェースプロトコルにより定義されるインタフェースを用いて、元のバージョンの動的実装レイヤにおけるインタエース実装を呼び出し、インタフェース実装用のクラスライブラリを動的にロードする。
【０１１０】
ある実施形態において、ワイヤレスアプリケーション実行装置１０００は、さらに、更新モジュール１０３０を備える。実行モジュール１０２０がインタエース実装用のクラスライブラリを動的にロードした後に、更新モジュール１０３０は、サーバにクエリ要求を送信する。クエリ要求は、永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンをサーバが有するか否かを問い合わせ、サーバから返送された永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせの更新バージョンを受信し、更新バージョンを用いて、ワイヤレスアプリケーションの永続インターフェイスレイヤ、動的実装レイヤ、またはこれらの組み合わせを更新する。
【０１１１】
ワイヤレスアプリケーション装置は、上述したワイヤレスアプリケーション実行処理の少なくとも１つを実施し、ワイヤレスアプリケーション実行処理と同様の効果を有する。
【０１１２】
本出願は、ＳＤＫを抽象化して、比較的永続的なインタフェースへの指向を含むＳＤＫのみを発行する。これにより、ワイヤレスアプリケーション開発者は、頻繁に更新されるサーバ上にＳＤＫを構成して更新することができる。したがって、ワイヤレスアプリケーションの実行中に、ワイヤレスアプリケーションは、ＳＤＫ統合クラスライブラリの最新バージョンをサーバから動的に取得するための基準としてこの構成を用いて、最新バージョンをロードして実行する。クラスライブラリを動的にロードすることにより、ＳＤＫと現在統合されているワイヤレスアプリケーションは、新しい機能を取得する。本出願は、アンドロイドプラットフォーム上でワイヤレスアプリケーションを実行させるように開発されたＪＡＶＡ（登録商標）をはじめとする様々な種類のオペレーティングプラットフォーム用にワイヤレスアプリケーションを発行およびアップグレードするのに適している。たとえば、統合ゲームエンジンパッケージを用いてゲームを開発したり、プログラム配信をコンパイルしたりという例を挙げることができ、また、アクセスカウントおよびユーザトラッキングの統合パッケージによる統計を用いることもできる。ただし、本出願は上述した例に限定されるものではない。本出願のワイヤレスアプリケーション発行およびアップグレードの解決策は、他の種類の状況、たとえば、Ｃ言語を用いて開発されたワイヤレスアプリケーションにも適用可能である。
【０１１３】
上述したユニットは、１つ以上の汎用プロセッサ上で実行されるソフトウェア要素として、所定の機能を実行するように設計されたプログラム可能なロジックデバイスおよび／または特定用途向け集積回路（ＡＳＩＣ）等のハードウェアとして、または、その組み合わせとして、実現可能である。ある実施形態において、ユニットは、（光ディスク、フラッシュメモリ型記憶装置、可動式ハードディスク等の）不揮発性記憶媒体に保存可能であって、（パーソナルコンピュータ、サーバ、ネットワーク装置等の）コンピュータ装置に本発明の実施形態に記載した方法を実現させる多数の命令を含む、ソフトウェア製品の形態で実施されるものでもよい。ユニットは、単一の装置上で実現されるものでもよいし、あるいは、複数の装置に分散されるものでもよい。ユニットの機能を統合するようにしてもよいし、複数のサブユニットにさらに分割するようにしてもよい。
【０１１４】
本出願で開示される実施例に照らして記載した方法またはアルゴリズムの工程は、ハードウェアを用いて実現することも、プロセッサが実行するソフトウェアモジュールを用いて実行することも、また、これらを組み合わせて実行することも可能である。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、メモリ、リードオンリーメモリ（ＲＯＭ）、電気的にプログラム可能なＲＯＭ、電気的に消去可能なプログラマブルＲＯＭ、レジスタ、ハードディスクドライブ、リムーバブルディスク、ＣＤ−ＲＯＭ、または、当該技術分野で周知の任意の他の形態の記憶媒体にインストールされるものでもよい。
【０１１５】
以上、理解を助ける目的で実施形態を詳細に説明したが、本発明は上述した詳細に限定されるものではなく、本発明は多くの別の形態で実施可能である。上述した実施形態は例示に過ぎず、限定するものではない。
本発明は、たとえば、以下のような態様で実現することもできる。
適用例１
ワイヤレスアプリケーションを発行する方法であって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合する工程であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、工程と、
統合されたワイヤレスアプリケーションを発行する工程と、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールする工程と、を備える方法。
適用例２
適用例１の方法であって、さらに、
前記ワイヤレスアプリケーションに前記ＳＤＫの永続インターフェイスレイヤを統合する前に、前記ＳＤＫを分割して、前記永続インターフェイスレイヤとして前記インタフェースプロトコルをカプセル化するとともに、前記動的実装レイヤとしてインタフェース実装をカプセル化する工程を備える、方法。
適用例３
適用例２の方法であって、
前記ＳＤＫの分割は、リフレクション機構を用いて実行される、方法。
適用例４
適用例１の方法であって、さらに、
前記統合されたワイヤレスアプリケーションを発行し、前記ＳＤＫの動的実装レイヤをサーバ上にインストールした後に、
前記ワイヤレスアプリケーションを用いてワイヤレスクライアントにより送信された取得要求を受信する工程であって、前記取得要求を用いて、前記動的実装レイヤの前記インタフェース実装をサーバから取得することを要求する工程と、
前記取得要求に応じて、前記動的実装レイヤの前記インタフェース実装を前記ワイヤレスクライアントに送信する工程であって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備える方法。
適用例５
適用例４の方法であって、さらに、
前記動的実装レイヤのインタフェース実装を前記ワイヤレスクライアントに送信した後に、
前記ワイヤレスクライアントから送信されるクエリ要求を受信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有する場合に、前記更新バージョンを前記サーバから前記ワイヤレスクライアントに送信する工程であって、前記ワイヤレスクライアントは、前記更新バージョンを用いて、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションの前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
適用例６
適用例１の方法であって、さらに、
前記ＳＤＫの前記永続インターフェイスレイヤを前記ワイヤレスアプリケーションに統合するのとは異なる時に、元のバージョンの前記動的実装レイヤを前記ワイヤレスアプリケーションに統合する工程を備え、
前記統合されたワイヤレスアプリケーションを発行する工程は、
前記ＳＤＫの元のバージョンの前記永続インターフェイスレイヤと前記動的実装レイヤとに統合されたワイヤレスアプリケーションを発行し、前記ワイヤレスクライアントによる前記ワイヤレスアプリケーションのダウンロードを可能にする工程であって、前記ワイヤレスクライアントの前記ワイヤレスアプリケーションは、前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおける前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備える方法。
適用例７
適用例６の方法であって、さらに、
前記ＳＤＫの元のバージョンの前記永続インターフェイスレイヤと前記動的実装レイヤとに統合されたワイヤレスアプリケーションを発行し、前記ワイヤレスクライアントによる前記ワイヤレスアプリケーションのダウンロードを可能にした後に、
前記ワイヤレスクライアントから送信されるクエリ要求を受信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有する場合に、前記更新バージョンを前記サーバから前記ワイヤレスクライアントに送信する工程であって、前記ワイヤレスクライアントは、前記更新バージョンを用いて、前記永続インターフェイスレイヤ、前記ワイヤレスアプリケーションの前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
適用例８
ワイヤレスアプリケーションを実行する方法であって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得する工程と、
前記データパッケージを用いて、前記ワイヤレスアプリケーションを実行する工程であって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは、前記ワイヤレスアプリケーションに統合され、前記ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備える工程と、を備える方法。
適用例９
適用例８の方法であって、
前記データパッケージを用いて前記ワイヤレスアプリケーションを実行する前記工程は、
前記サーバに取得要求を送信する工程であって、前記取得要求は、前記動的実装レイヤの前記インタフェース実装を前記サーバから取得することを要求するものである工程と、
前記サーバから返送された前記動的実装レイヤの前記インタフェース実装を受信する工程と、
前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記サーバから取得した前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備える方法。
適用例１０
適用例９の方法であって、
前記インタフェース実装用のクラスライブラリを動的にロードする前記工程は、
前記サーバにクエリ要求を送信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記サーバから返送された前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを受信する工程と、
前記更新バージョンを用いて、前記ワイヤレスアプリケーションの前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
適用例１１
適用例８の方法であって、
前記ワイヤレスアプリケーションは、元のバージョンの前記動的実装レイヤに統合され、
前記データパッケージを用いて前記ワイヤレスアプリケーションを実行する前記工程は、
前記永続インターフェイスレイヤにおける前記インタフェースプロトコルにより定義されるインタフェースを用いて、前記元のバージョンの動的実装レイヤにおける前記インタフェース実装を呼び出す工程と、
前記インタフェース実装用のクラスライブラリを動的にロードする工程と、を備える方法。
適用例１２
適用例１１の方法であって、
前記インタフェース実装用のクラスライブラリを動的にロードする前記工程は、
前記サーバにクエリ要求を送信する工程であって、前記クエリ要求は、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを前記サーバが有するか否かを問い合わせるものである工程と、
前記サーバから返送された前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせの更新バージョンを受信する工程と、
前記更新バージョンを用いて、前記永続インターフェイスレイヤ、前記動的実装レイヤ、またはこれらの組み合わせを更新する工程と、を備える方法。
適用例１３
ワイヤレスアプリケーション発行装置であって、
少なくとも１つのプロセッサであって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、ことと、
統合されたワイヤレスアプリケーションを発行することと、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールすることと、を行うように構成される少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を与えるように構成されるメモリと、
を備えるワイヤレスアプリケーション発行装置。
適用例１４
ワイヤレスアプリケーション実行装置であって、
少なくとも１つのプロセッサであって、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤに統合されたワイヤレスアプリケーションのデータパッケージを取得することと、
前記データパッケージを用いて、前記ワイヤレスアプリケーションを実行することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは、前記ワイヤレスアプリケーションに統合され、前記ワイヤレスアプリケーションにより呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは、サーバ上にインストールされ、前記ワイヤレスアプリケーションにより実装されるインタフェース実装を備えることと、を行うように構成される少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を与えるように構成されるメモリと、
を備えるワイヤレスアプリケーション実行装置。
適用例１５
フロートアウトメッセージを制御するコンピュータプログラムプロダクトであって、一時的でないコンピュータ読み取り可能な記憶媒体に体現化され、
ソフトウェア開発キット（ＳＤＫ）の永続インターフェイスレイヤをワイヤレスアプリケーションに統合することであって、前記ＳＤＫは前記永続インターフェイスレイヤと動的実装レイヤとを備え、前記永続インターフェイスレイヤは前記ワイヤレスアプリケーションによって呼び出されるインタフェースプロトコルを備え、前記動的実装レイヤは前記インタフェースプロトコルに対応するインタフェース実装を備える、ことと、
統合されたワイヤレスアプリケーションを発行することと、
前記ＳＤＫの前記動的実装レイヤをサーバにインストールすることと、を行うコンピュータ命令を備える、コンピュータプログラムプロダクト。
【図１】
0005992095.tif 000002
【図２】
0005992095.tif 000003
【図３】
0005992095.tif 000004
【図４】
0005992095.tif 000005
【図５】
0005992095.tif 000006
【図６】
0005992095.tif 000007
【図７】
0005992095.tif 000008
【図８】
0005992095.tif 000009
【図９】
0005992095.tif 000010
【図１０】
0005992095.tif 000011
【図１１】
0005992095.tif 000012