図2に示されているように、本発明の一実施形態のシステムは、DMサーバ1および端末2を含み、DMサーバ1は、複数のソフトウェアコンポーネントを含むソフトウェアコンポーネントパッケージを直接に端末2に、直接にDMコマンドを介して送達するように適合され、あるいは、ソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを端末2に送達するように適合され、端末2は、DMサーバ1によって送達されたソフトウェアコンポーネントパッケージまたはソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを受信するように適合され、ソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドが受信される場合に、端末2は、ダウンロードアドレスに従ってソフトウェアコンポーネントパッケージをダウンロードし、入手されたソフトウェアコンポーネントパッケージをローカルにインストールし、コンポーネントに対応する管理ノードおよびその管理ノードのサブノードをDeployedサブツリーの下に生成する。
ダウンロードを指示するコマンドがDownLoadである場合に、端末2がダウンロードアドレスに従ってコンポーネントパッケージをダウンロードした後、コンポーネントパッケージがローカルにインストールされる前に、あるいは、ダウンロードを指示するコマンドがDownLoadInstallもしくはDownLoadInstallInactiveである場合に、端末2がダウンロードアドレスに従ってソフトウェアコンポーネントパッケージをダウンロードしたがソフトウェアコンポーネントパッケージのインストールに失敗した後に、端末2は、ソフトウェアコンポーネントパッケージに対応する管理ノードおよびその管理ノードのサブノードをDeliveredサブツリーの下に生成し、アクセス制御権をその管理ノードおよびサブノードに割り当てるようにさらに適合される。
端末2が、ソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成する前に、ダウンロードされたソフトウェアコンポーネントパッケージのIDが、Deliveredサブツリーの下に既に存在する管理ノードおよびそのサブノードに対応するコンポーネントパッケージのIDと同一であるかどうかを判断するように端末2を適合させることができ、そうである場合に、端末2は、Deliveredサブツリーの下に既に存在する管理ノードおよびサブノードの情報をダウンロードされたパッケージの情報に変更し、あるいは、そうでない場合に、端末2は、ダウンロードされたパッケージに対応する管理ノードおよびその管理ノードのサブノードをDeliveredサブツリーの下に生成する。
DMサーバ1は、ダウンロードを指示するコマンドを送達する前にDownloadサブツリーの下にコンポーネントパッケージの管理ノードを生成するように端末2に指示するようにさらに適合され、端末2は、Downloadサブツリーの下に生成される管理ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードのアクセス制御権としてセットするようにさらに適合され、あるいは、端末2は、管理ノードがその親ノードのアクセス制御権を継承するようにするためにDeliveredサブツリーの下に生成される管理ノードのアクセス制御権にヌルをセットするように、または、Deliveredサブツリーの下に生成される管理ノードの特定のアクセス制御権をセットするように、または、Downloadサブツリーの下に生成される管理ノードのアクセス制御権とDeliveredサブツリーの下に生成される管理ノードの親ノードのアクセス制御権とを組み合わせ、組み合わされたアクセス制御権をDeliveredサブツリーの下に生成される管理ノードのアクセス制御権としてセットするように適合される。
DMサーバ1を、ダウンロードを指示するコマンドを送達する前にDownloadサブツリーの下のソフトウェアコンポーネントパッケージの管理ノードを生成するように端末2に指示するように適合させることができ、端末2が、ダウンロードされたソフトウェアコンポーネントパッケージがDeliveredサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントパッケージと同一であると判断する場合に、端末2は、Downloadサブツリーの下に生成される管理ノードのアクセス制御権とDeliveredサブツリーの下に既に存在する管理ノードのアクセス制御権との合計をDeliveredサブツリーの下に生成される管理ノードのアクセス制御権としてセットするようにさらに適合される。
端末2は、Deliveredサブツリーの下に生成される管理ノードのサブノードに管理ノードのアクセス制御権を継承させるように、または、Downloadサブツリーの下の実行可能ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードの実行可能ノードのアクセス制御権としてセットするようにさらに適合される。
端末2は、DeliveredサブツリーノードについてDMサーバ1によって送達されるDMコマンドを受信し、ノードに割り当てられたアクセス制御権に従ってDMサーバ1がそのノードに対してそのDMコマンドを実行する権利を有するかどうかを判断し、DMサーバ1がその権利を有する場合に、そのノードに対してそのDMコマンドを実行するように適合されてもよい。
DMサーバ1は、端末2にパラメータを送信するようにさらに適合され、端末2は、そのパラメータに従って、ソフトウェアコンポーネントパッケージをダウンロードするか、ソフトウェアコンポーネントパッケージをインストールするか、ソフトウェアコンポーネントパッケージを除去するか、ソフトウェアコンポーネントをアクティブ化するか、ソフトウェアコンポーネントを非アクティブ化するか、またはソフトウェアコンポーネントを除去するようにさらに適合される。
DMサーバ1は、端末2にパラメータを送信する前に、端末2のSCOMOにサブノードを追加するように端末2に指示するようにさらに適合される。
DMサーバ1は、ソフトウェアコンポーネントパッケージをダウンロードし、インストールし、または除去するように端末2に指示し、あるいはソフトウェアコンポーネントをアクティブ化し、非アクティブ化し、または除去するように端末2に指示するパラメータを、DMコマンドを介して端末2に送信するように適合されてもよい。
端末2は、ソフトウェアコンポーネントパッケージをインストールした後、そのコンポーネントに対応する管理ノードおよびそのサブノードをDeployedサブツリーの下に生成する前に、ソフトウェアコンポーネントパッケージがDeployedサブツリーの下に既に存在する管理ノードおよびそのサブノードに対応するソフトウェアコンポーネントと同一のソフトウェアコンポーネントを含むかどうかを判断するようにさらに適合される。そうである場合には、端末2は、Deployedサブツリーの下の管理ノードおよびそのサブノードの情報をソフトウェアコンポーネントパッケージ内のコンポーネントの情報に変更するように適合され、そうでない場合には、端末2は、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントに対応する管理ノードおよびそのサブノードをDeployedサブツリーの下に生成するように適合される。
端末2は、ソフトウェアコンポーネントのIDまたは名前が同一であると判断する場合に2つのソフトウェアコンポーネントが同一であると判定するようにさらに適合され、そうでない場合に、端末2は、2つのソフトウェアコンポーネントが異なると判定する。
ソフトウェアコンポーネントパッケージ内のあるソフトウェアコンポーネントがDeployedサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントと同一であると判断する場合に、端末2は、Deployedサブツリーの下の管理ノードの情報をソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントの情報に変更し、DeliveredサブツリーまたはDownloadサブツリーの下のソフトウェアコンポーネントパッケージについて生成された管理ノードのアクセス制御権とDeployedサブツリーの下に既に存在する管理ノードのアクセス制御権との合計をDeployedサブツリーの下に生成される管理ノードのアクセス制御権としてセットするようにさらに適合される。
ソフトウェアコンポーネントパッケージを端末2に送達する前に、DMサーバ1は、そのソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成するように端末2に指示するようにさらに適合され、その管理ノードは、ソフトウェアコンポーネント情報を含み、端末2は、Deliveredサブツリーの下の管理ノードに含まれるソフトウェアコンポーネント情報をDeployedサブツリーに格納するようにさらに適合される。
端末2は、ソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成した後に、管理ノードおよびその管理ノードのサブノードのアクセス制御権をセットするようにさらに適合される。
端末2は、DeliveredサブツリーもしくはDownloadサブツリーの下に生成されるソフトウェアコンポーネントパッケージに対応する管理ノードのアクセス制御権をDeployedサブツリーの下に生成される管理ノードのアクセス制御権としてセットするように、または管理ノードがその親ノードのアクセス制御権を継承するようにするためにDeployedサブツリーの下に生成される管理ノードのアクセス制御権にヌルをセットするように、またはDeployedサブツリーの下に生成される管理ノードに関して特定のアクセス制御権をセットするように、またはDeliveredサブツリーもしくはDownloadサブツリーの下の管理ノードのアクセス制御権とDeployedサブツリーの下に生成される管理ノードの親ノードのアクセス制御権とを組み合わせ、組み合わされたアクセス制御権をDeployedサブツリーの下に生成される管理ノードのアクセス制御権としてセットするようにも適合される。
端末2は、Deployedサブツリーの下に生成される管理ノードのサブノードに管理ノードのアクセス制御権を継承させ、またはDeliveredサブツリーもしくはDownloadサブツリーの下の実行可能ノードのアクセス制御権をDeployedサブツリーの下に生成される管理ノードの実行可能ノードのアクセス制御権としてセットするようにも適合される。
端末2が、Deployedサブツリーの下にソフトウェアコンポーネントに対応する管理ノードを生成した後に、端末2は、Deployedサブツリーノードに関するDMサーバ1によって送達されたDMコマンドを受信し、そのノードに割り当てられたアクセス制御権に従って、DMサーバ1がそのノードに対してDMコマンドを実行する権利を有するかどうかを判断し、DMサーバ1がその権利を有する場合に、そのノードに対してそのDMコマンドを実行するようにさらに適合される。
端末2が、Deployedサブツリーの下にコンポーネントに対応する管理ノードを生成した後に、端末2は、インストール応答メッセージをDMサーバ1に報告するようにさらに適合され、インストール応答メッセージは、Deployedサブツリーの下に生成された管理ノードのURIを含む。
ダウンロードを指示するコマンドが間接ダウンロード命令としてDownLoadを伝える場合に、ダウンロードが完了した後、ソフトウェアコンポーネントパッケージがインストールされる前に、あるいは、ダウンロードを指示するコマンドが間接ダウンロード命令としてDownLoadInstallまたはDownLoadInstallInactiveを伝える場合に、ダウンロードが完了するがインストールが失敗する時に、端末2は、DMサーバ1にダウンロード応答メッセージを報告し、ダウンロード応答メッセージは、Deliveredサブツリーの下に生成された管理ノードのURIを含む。
ダウンロード応答メッセージおよびインストール応答メッセージは、同期モードまたは非同期モードで報告される。
報告モードが同期である場合に、端末2は、StatusコマンドのItem要素を介して、ダウンロード応答メッセージまたはインストール応答メッセージでURIを伝えるようにさらに適合される。
ダウンロード応答メッセージは、ソフトウェアコンポーネントパッケージの名前および/またはIDをさらに含み、インストール応答メッセージは、ソフトウェアコンポーネントの名前および/またはIDをさらに含む。
DownLoad命令が、直接ダウンロードまたは間接ダウンロードのために使用される場合に、Deployedサブツリーの下にソフトウェアコンポーネントに対応する管理ノードを生成した後に、端末2は、パッケージの状態にInstalledをセットするようにさらに適合される。
次で、本発明の実施形態を詳細に説明する。
図3に、本発明の実施形態の端末内の送達されたソフトウェアコンポーネントパッケージの状態遷移を示す。図3に示されているように、送達されたソフトウェアコンポーネントパッケージは、次の4つの状態のうちのいずれかであることができ、Not Downloadは、ソフトウェアコンポーネントパッケージが端末によってダウンロードされず、端末内に存在しないことを示し、Deliveredは、ソフトウェアコンポーネントパッケージが端末によってダウンロードされているが、まだインストールされていないことを示し、Installedは、ソフトウェアコンポーネントパッケージがインストールされていることを示し、Removedは、ソフトウェアコンポーネントパッケージが除去されていることを示す。ソフトウェアコンポーネントパッケージは、この4つの状態の間である状態から別の状態に移ることができる。たとえば、ソフトウェアコンポーネントパッケージがダウンロードされた後に、ソフトウェアコンポーネントパッケージ状態は、Not DownloadedからDeliveredに変化し、その後、ソフトウェアコンポーネントパッケージ状態は、ソフトウェアコンポーネントパッケージがインストールされた後に、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントがアクティブ化されてもアクティブ化されなくてもよい時に、DeliveredからInstalledに変化し、ソフトウェアコンポーネントパッケージがインストールされずに除去される時には、ソフトウェアコンポーネントパッケージ状態は、DeliveredからRemovedに変化し、ソフトウェアコンポーネントパッケージがインストールされた後に除去される時には、ソフトウェアコンポーネントパッケージ状態は、InstalledからRemovedに変化し、インストールが失敗し、ソフトウェアコンポーネントパッケージが端末から除去されない場合には、ソフトウェアコンポーネントパッケージ状態は、Not DownloadedからDeliveredに変化し、インストールが失敗し、ソフトウェアコンポーネントパッケージが除去される場合には、ソフトウェアコンポーネントパッケージ状態は、Not DownloadedからRemovedに変化し、ソフトウェアコンポーネントパッケージがダウンロードされ、直接にインストールされる場合には、ソフトウェアコンポーネントパッケージ状態は、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントがアクティブ化されてもアクティブ化されなくてもよい時に、Not DownloadedからInstalledに変化する。ソフトウェアコンポーネントパッケージが、Downloadサブツリー内およびDeliveredサブツリー内に存在することは明白である。Not Downloaded状態およびRemoved状態を、ソフトウェアコンポーネントパッケージが端末内に存在しないことを意味する、ソフトウェアコンポーネントパッケージがダウンロードされていないか既に除去されたことを示す、1つのIdle状態に組み合わせることができる。
ソフトウェアコンポーネントは、Deployedサブツリー内に存在する。図4Aに、端末内のソフトウェアコンポーネントの状態遷移を示す。Inactiveは、ソフトウェアコンポーネントがインストールされているが、アクティブ化されていないので使用可能ではないことを示し、Activeは、コンポーネントがインストールされ、アクティブ化され、ソフトウェアコンポーネントが現在使用可能であることを示し、Removedは、ソフトウェアコンポーネントが除去されていることを示す。ソフトウェアコンポーネントは、この3つの状態の中である状態から別の状態に移ることができる。コンポーネントがアクティブ化される時に、ソフトウェアコンポーネント状態は、InactiveからActiveに変化し、逆に、ソフトウェアコンポーネント状態は、ActiveからInactiveに変化し、ソフトウェアコンポーネントがアクティブ化されずに除去される場合には、ソフトウェアコンポーネント状態は、InactiveからRemovedに変化し、ソフトウェアコンポーネントがアクティブ化された時に除去される場合には、ソフトウェアコンポーネント状態は、ActiveからRemovedに変化する。Removed状態を、ソフトウェアコンポーネントが端末内に存在しないことを意味する、ソフトウェアコンポーネントがインストールされていないか除去されていることを示すIdleに変更することができる。ソフトウェアコンポーネントパッケージがInstalled状態である時に、そのソフトウェアコンポーネントパッケージに含まれるソフトウェアコンポーネントの状態は、IdleからActiveまたはInactiveに変化する。ソフトウェアコンポーネントが除去される時に、ソフトウェアコンポーネント状態は、ActiveまたはInactiveからIdleに変化する。
本発明の実施形態で、ソフトウェアコンポーネントパッケージを、管理されずに1つまたは複数のソフトウェアコンポーネントをカプセル化し、送達する手段にすることができる。本発明のこの実施形態では、ソフトウェアコンポーネントパッケージは、状態遷移を有しないものとすることができ、ソフトウェアコンポーネントだけが状態の遷移を有する。この場合に、ソフトウェアコンポーネントの状態遷移を、図4Bに示す。Idleは、ソフトウェアコンポーネントがダウンロードされず、インストールされず、または既に除去されていることを示し、Deliveredは、ソフトウェアコンポーネントがダウンロードされているがインストールされていないことを示し、Inactiveは、ソフトウェアコンポーネントがインストールされているがアクティブ化されず、したがって使用可能ではないことを示し、Activeは、ソフトウェアコンポーネントがインストールされ、アクティブ化され、したがって使用可能であることを示す。図4Bでは、破線は、動作が失敗した後に状態が変更されないことを意味し、実線は、正常動作プロセスを示す。ソフトウェアコンポーネントは、4つの状態の中で、ある状態から別の状態に移ることができる。ソフトウェアコンポーネントがダウンロードされるだけである時またはソフトウェアコンポーネントがダウンロードされているがインストールが失敗する時に、ソフトウェアコンポーネント状態は、IdleからDeliveredに変化し(ダウンロードに失敗する時には、状態は未変更のままになる)、ソフトウェアコンポーネントがインストールされる時には、コンポーネント状態は、IdleまたはDeliveredからActiveまたはInactiveに変化し(インストールが失敗する時には、状態は未変更のままになる)、ソフトウェアコンポーネントがアクティブ化される時には、ソフトウェアコンポーネント状態はInactiveからActiveになり(アクティブ化が失敗する時には、状態は未変更のままになる)、ソフトウェアコンポーネントが非アクティブ化される時には、ソフトウェアコンポーネント状態は、Idle、Delivered、またはActiveからInactiveに変化し(非アクティブ化が失敗する時には、状態は未変更のままになる)、ソフトウェアコンポーネントが除去される場合には、ソフトウェアコンポーネント状態は、Delivered、Inactive、またはActiveからIdleに変化する(除去が失敗する時には、状態は未変更のままになる)。
1つのソフトウェアコンポーネントパッケージが、1つまたは複数のソフトウェアコンポーネントを含むことができる。1つのソフトウェアコンポーネントは、1つのアプリケーションプログラム、アンチウィルスパッチ、または1つのアプリケーションプログラムのライブラリファイルを表すことができる。ソフトウェアコンポーネントがインストールされる前に、そのソフトウェアコンポーネントは、ソフトウェアコンポーネントパッケージ内に配置されなければならない。ソフトウェアコンポーネントパッケージがダウンロードされ、成功してインストールされた後に、ソフトウェアコンポーネントは、展開されたコンポーネントになる。
図5に、本発明の第1の方法実施形態の流れ図を示す。この実施形態で、ソフトウェアコンポーネントパッケージの名前は、ascendoであり、ソフトウェアコンポーネントパッケージIDは、PkgID_1であり、ソフトウェアコンポーネントパッケージは、3つのソフトウェアコンポーネントを含み、その名前は、それぞれascendo_1、ascendo_2、およびascendo_3であり、IDは、それぞれComID_1、ComID_2、およびComID_3である。この流れ図は、次のステップを含む。
ステップ501:DMサーバが、DMコマンドを介して直接に端末にソフトウェアコンポーネントパッケージを送達し、あるいは、パッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを端末に送達する。ソフトウェアコンポーネントパッケージは、複数のソフトウェアコンポーネントを含む。
DMサーバは、まず、端末のダウンロードモードを判定する。ダウンロードモードが直接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージを、直接にDMコマンドを介して端末に送達し、ダウンロードモードが間接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを端末に送達し、ソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドは、あるDMセッションまたは異なる複数のDMセッションで送達され得る。DMサーバは、ダウンロードを指示するコマンドを端末に1つのダウンロードアドレスについて繰り返して送達することができる。
簡単な管理のために、DMサーバは、ソフトウェアコンポーネントをダウンロードし、インストールし、除去し、またはアクティブ化/非アクティブ化する命令とすることのできる動作命令を送達する前に、端末に命令関連パラメータを送信することができる。端末は、パラメータに従って命令を実行する。パラメータは、2つの方法で送達され得る。一方は、端末のソフトウェアコンポーネント管理ツリーにノードを追加することであり、サーバは、そのノードを介してパラメータを送達する。他方の方法は、送達されるExecコマンドのData要素内で直接にパラメータを伝えることである。次では、ソフトウェアコンポーネントをインストールする命令に関連するパラメータをどのように送達すべきかを説明することによって、パラメータ送達方法を説明する。他の命令関連パラメータは、同一の方法で送達される。端末がソフトウェアコンポーネントパッケージをインストールする前に、DMサーバは、必要な場合に端末にパラメータを送達する。これは、DMサーバが、DMコマンドを介してソフトウェアコンポーネントパッケージを送達する時またはダウロードを指示するコマンドもしくはインストールコマンドを送達する時に、パラメータを送達できることを意味する。パラメータは、ソフトウェアコンポーネントパッケージ内のある種のソフトウェアコンポーネントだけ、たとえば、Java(登録商標)関連コンポーネントまたはC++関連コンポーネントだけをインストールするように端末に指示することができる。パラメータは、インストールの後に端末がDeployedサブツリーを生成するための処理ポリシを示すこともできる。あるいは、DMサーバが、実際の必要に応じて他の時にパラメータを送達することができる。後続インストールプロセスで、端末は、パラメータに従って、ダウンロードされたソフトウェアコンポーネントパッケージをローカルにインストールすることができる。複数のパラメータ送達モードがある。たとえば、DMサーバは、SCOMOのサブツリーの下にソフトウェアコンポーネントパッケージ用の管理ノードを生成し、その管理ノードのサブノードを追加するように端末に指示し、パラメータをそのサブノードに直接に送達し、あるいは、DMサーバは、DMコマンドを介して直接に端末にパラメータを送達することができる。後者のモードを、ステップ503で説明する。このステップでは、前者のモードが、次のように説明される。
DMサーバは、SCOMOのサブツリーの下にソフトウェアコンポーネントパッケージ用の管理ノードを生成し、その管理ノードのサブツリーを追加するように端末に指示する。管理ノードが生成されるサブツリーは、ダウンロードモードに伴って変化する。ダウンロードモードは、直接または間接とすることができ、ここで、間接ダウンロードは、さらに、DownLoad命令を介するダウンロードと、DownLoadInstall命令またはDownLoadInstallInactive命令を介するダウンロードとを含む。
ダウンロードが間接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブツリーの下に生成するように端末に指示する。図6に示されているように、端末は、Pkg1という名前の管理ノードをDownloadサブツリーの下に生成し、DMサーバによって送達されるパラメータを格納するために、その管理ノードのサブノードを追加する。このサブノードに、InstallParaという名前を付けることができる。このダウンロードモードでは、DMサーバは、パラメータをDownload/Pkg1/InstallParaサブノードに送達することができ、ここで、Pkg1は、生成された管理ノードの名前である。
ダウンロードが直接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージ用の管理ノードをDeliveredサブツリーの下に生成するように端末に指示する。図7に示されているように、端末は、Pkg1という名前の管理ノードをDeliveredサブツリーの下に生成し、DMサーバによって送達されるパラメータを格納するために、その管理ノードのサブノードを追加する。同様に、このサブノードに、InstallParaという名前を付けることができる。このダウンロードモードでは、DMサーバは、パラメータをDelivered/Pkg1/InstallParaサブノードに送達することができる。
ダウンロードモードにもかかわらず、端末内のストレージ空間をサブノードとして追加することが必要である場合がある。サブノードの存在は、サーバの必要に依存する。パラメータ(通し番号など)がインストールに必要である場合、パーソナライズされたインストールが要求される場合(たとえば、Java(登録商標)関連コンポーネントだけまたはC++関連コンポーネントだけをインストールすために)、またはソフトウェアコンポーネントの動作環境の情報(たとえば、ソフトウェアコンポーネントまたはソフトウェアコンポーネントパッケージがJava(登録商標)環境またはC++環境のどちらを必要とするか)をサーバに与えることが必要である場合に、端末は、InstallParaサブノードを追加することができ、そうでない場合には、InstallParaサブノードを追加する必要はない。
InstallParaのノード情報を、表1に列挙する。InstallParaは、オプションの状況と共に任意のフォーマットでDownLoad/<X>/InstallParaに配置される。本発明のこの実施形態では、InstallParaサブノードは、文字(Chr)フォーマットである。多くとも1つのInstallParaサブノードを追加することができ、最小アクセスタイプは、Getである。これらのセッティングは、すべてのダウンロードモードに適用可能である。
表2に、Nameサブノードの情報を列挙する。Nameの位置は、DownLoad/<X>/Name、Inventory/Delivered/<X>/Name、またはInventory/Deployed/<X>/Nameである。これらのセッティングは、すべてのダウンロードモードに適用可能である。このサブノードは、Chrフォーマットで必須である。追加できる実行可能ノードの個数は、1である。最小アクセスタイプはGetである。
さらに、Pkg1ノードは、Stateサブノードを含む。Stateの位置は、Inventory/Delivered/<X>/Stateである。Stateの情報を、表3に列挙する。Stateサブノードは、現在のソフトウェアコンポーネントパッケージまたはソフトウェアコンポーネントの状態情報を記録する。表4に示されているように、Delivered状態を、"10"によって示すことができ、Installed状態を、"20"によって示すことができる。
明らかに、DMサーバは、DMサーバがダウンロードを指示するコマンドを送達した後、端末がソフトウェアコンポーネントパッケージをインストールする前に、パラメータを送達することができる。
ダウンロードモードが間接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージのダウンロードアドレスを、Pkg1という名前の管理ノードのPkgURLサブノードに格納し、ダウンロードを指示するコマンドを送達する。端末は、ダウンロードアドレスに従って、プリセットダウンロードモードでローカルにソフトウェアコンポーネントパッケージをダウンロードすることができる。
ステップ502:端末が、ダウンロードアドレスおよびダウンロードを指示するコマンドを受信する場合に、端末は、ダウンロードアドレスに従ってパッケージをダウンロードし、ソフトウェアコンポーネントパッケージをローカルに格納する。
上で説明したように、ダウンロードモードを、直接または間接とすることができる。直接ダウンロードモードでは、DMサーバは、ダウンロードされるソフトウェアコンポーネントパッケージ用の管理ノードをSCOMOのDeliveredサブツリーの下に生成し、ソフトウェアコンポーネントパッケージを端末に送達するためにDeliveredサブツリーのDataノードに対してReplaceコマンドを実行するように端末に指示する。間接モードでは、DMサーバは、ダウンロードされるソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブノードの下に生成し、ソフトウェアコンポーネントパッケージ名、バージョン、およびダウンロードアドレスを含むダウンロード情報を管理ノードのサブノード内でセットし、適用可能なオペレーション権を追加するように端末に指示し、その後、DMサーバは、ダウンロードを指示するコマンドを端末に送達する。図8に、次を含む3つのダウンロードモードの流れ図を示す。
ステップ801:DMサーバが、ダウンロードモードを判定し、ダウンロードを指示するコマンドを送達する。
ステップ802:端末が、ダウンロード命令に従って処理を選択する。次で、3つのダウンロードモードをそれぞれ説明する。
1. DownLoad命令を介する間接ダウンロード
ステップ803:端末が、DMサーバによって供給されるソフトウェアコンポーネントパッケージのダウンロードアドレスからローカルにソフトウェアコンポーネントパッケージをダウンロードする。
ステップ804:ソフトウェアコンポーネントパッケージをインストールする前に、端末が、成功してダウンロードされたソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成する。これは、端末が、Deliveredサブツリーの下にソフトウェアコンポーネントパッケージ用の管理ノードを生成することを意味する。管理ノードを生成する前に、端末は、この管理ノードに対応するPkgIDがダウンロードされたソフトウェアコンポーネントパッケージのIDと同一である管理ノードがDeliveredサブツリーの下に存在するかどうかを判断する必要がある。PkgIDは、ソフトウェアパブリッシャまたはパッケージパブリッシャによって供給され得る。そのような管理ノードが存在する場合には、端末は、Deliveredサブツリーの下に既に存在する管理ノードおよびそのサブノードの情報を、現在ダウンロードされているソフトウェアコンポーネントパッケージの情報に変更し、アクセス制御権を管理ノードに再割り当てする。そのような管理ノードが存在しない場合には、端末は、ダウンロードされたソフトウェアコンポーネントパッケージの管理ノードおよびそのサブノードをDeliveredサブツリーの下に生成し、アクセス制御権を新しい管理ノードに再割り当てする。本発明の実施形態では、ノードへのアクセス制御権の割当ては、ノードのアクセス制御リスト(ACL)属性を生成することと、その属性に値を割り当てることとを意味する。ACLの値は、ヌル(デフォルトで親ノードのACL値を継承するため)または非ヌル(ノード自体のACL値)とすることができる。
この実施形態では、ダウンロードされるソフトウェアコンポーネントパッケージのIDが、PkgID_1である。端末が、ソフトウェアコンポーネントパッケージに対応する管理ノードを生成する前に、端末は、PkgID_1として識別されるPkgIDサブノードが、現在のDeliveredサブツリーの下の管理ノードについて存在するかどうかを判断する。そのようなサブノードが存在する場合には、端末は、既存の管理ノードおよびそのサブノードの情報を、ダウンロードされるソフトウェアコンポーネントパッケージの情報に変更し、その管理ノードおよびサブノードにアクセス制御権を再割り当てする。そうでない場合に、端末は、ダウンロードされるソフトウェアコンポーネントパッケージ用の新しい管理ノードをDeliveredサブツリーの下に生成し、ここで、新しい管理ノードのPkgIDサブノードの値はPkgID_1であり、また端末は、新しい管理ノードおよびそのサブノードにアクセス制御権を割り当てる。図6に示されているように、端末は、Deliveredサブツリーの下に生成されるソフトウェアコンポーネントパッケージに対応する管理ノードのサブノードごとに値をセットする。この値は、Downloadサブツリーの下に生成されるソフトウェアコンポーネントパッケージに対応する管理ノードの対応するサブノードの値と同一とすることができる。Stateサブノードの値は、Deliveredである。さらに、端末は、Deliveredサブツリーの下に生成される管理ノードおよびその管理ノードのサブノードにアクセス制御権および他の属性値を割り当てる。
この実施形態で、アクセス制御権を複数の方法で割り当てることができ、これらの方法は、例を用いて次のように説明される。
Deliveredサブツリーの下の管理ノードにアクセス制御権を割り当てる方法は、次のとおりである。ステップ501に記載されているように、DownLoad命令が使用される時に、DMサーバがダウンロードを指示するコマンドを送達する前に、端末は、ソフトウェアコンポーネントパッケージに対応する管理ノードをDownloadサブツリーの下に生成済みであり、したがって、端末は、Downloadサブツリーの下の管理ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードに割り当てるか、Deliveredサブツリーの下の管理ノードにその親ノード(Deliveredノード)のアクセス制御権を継承させるか、Deliveredサブツリーに特定のアクセス制御権(Get=*など)を割り当てる。
アクセス制御権を管理ノードのサブノードに割り当てる方法は、次のとおりである。Deliveredサブツリーの下の管理ノードのサブノードは、管理ノードのアクセス制御権を継承し、あるいは、端末が、Downloadサブツリーの下のソフトウェアコンポーネントパッケージに対応する管理ノードの対応するサブノードのアクセス制御権をDeliveredサブツリーの下の管理ノードのサブノードに割り当てる。あるいは、Deliveredサブツリーの下の管理ノードのサブノードの一部が、管理ノードのアクセス制御権を継承し、Deliveredサブツリーの下の管理ノードの他のサブノードが、Downloadサブツリーの下のソフトウェアコンポーネントパッケージに対応する管理ノードの対応物のアクセス制御権を割り当てられるようにするために、上の2つの方法を組み合わせることができる。
管理ノードの実行可能サブノード(Operationsの下のInstall、InstallInactive、およびRemove)について、端末は、Downloadサブツリーの下の対応する実行可能ノードのアクセス制御権をそのアクセス制御権としてセットする。これは、端末が、Operationsの下の3つの実行可能ノードInstall、InstallInactive、およびRemoveのアクセス制御権に、Downloadサブツリーの下の管理ノードのOperationsの下の実行可能ノードのアクセス制御権を、好ましくは、Downloadサブツリーの下のダウンロード動作を実行する実行可能ノードのアクセス制御権をセットすることを意味する。たとえば、ダウンロードを指示するコマンドは、DownLoadであり、この命令を実行する実行可能ノードは、DownLoad/Pkg1/Operations/DownLoadであり、アクセス制御権は、Get=*&Exec=ServerAである。次に、端末は、Delivered/Pkg1/Operationsの下のすべての実行可能ノードにGet=*&Exec=ServerAを割り当てる。
さらに、端末が、ダウンロードされるソフトウェアコンポーネントパッケージがDeliveredサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントパッケージと同一であると判定する場合に、端末は、Downloadサブツリーの下のソフトウェアコンポーネントパッケージの管理ノードのアクセス制御権とDeliveredサブツリーの下に既に存在するソフトウェアコンポーネントパッケージの管理ノードのアクセス制御権との合計を、Deliveredサブツリーの下のソフトウェアコンポーネントパッケージの管理ノードの新しいアクセス制御権としてセットすることができる。管理ノードのサブノードについて、アクセス制御権を、上と同一の方法で割り当てることができる。
ステップ805:端末が、ダウンロード応答メッセージをDMサーバに報告する。このメッセージは、Deliveredサブツリー内のソフトウェアコンポーネントパッケージのURI(DeliveredのサブノードのURI)を伝える。このメッセージは、ソフトウェアコンポーネントパッケージID(PkgIDサブノード)およびソフトウェアコンポーネントパッケージ名(Nameサブノード)というアイテムのうちの1つまたは複数のアイテムを含むがこれらに限定はされない他の情報をも伝えることができる。
この実施形態では、応答メッセージを、同期報告および非同期報告など、複数のモードで報告することができる。同期報告は、端末が、サーバによって送達された動作命令に応答して実行結果および他の情報を報告することを意味し、非同期報告は、端末が、サーバによって送達された動作命令への応答とは独立に、同一のまたは異なる管理セッションで、実行結果を報告することを意味する。同期報告を用いると、サーバが、リアルタイムで端末の現在の実行結果を知るようになるが、非同期報告は、より少ないリソース浪費およびより高い効率を伴って、端末とサーバとの間のセッション待ち持続時間を短縮するのを助ける。ユーザは、実際の必要に基づいて正しい報告モードを選択することができる。この2つの報告モードは、次のように説明される。
非同期報告は、Generic Alertコマンドを使用することによってデータの報告を実現する。報告される情報は、Result Code、Source、Target、AlertType、およびCorrelatorを含み、Result Codeは、Generic AlertコマンドのItem/Data要素で伝えられる。Source要素は、ダウンロード命令を実行するノードのURIを伝える。Target要素は、Deliveredサブツリーの下にソフトウェアコンポーネントパッケージのために生成される管理ノードのURIを伝える。上の情報に加えて、Deliveredサブツリーの下に生成される管理ノードのNameサブノードである名前情報および/またはDeliveredサブツリーの下に生成される管理ノードのPkgIDサブノードであるID情報など、ソフトウェアコンポーネントパッケージの情報も報告される。コンポーネントパッケージの情報を報告する少なくとも3つの固有の方法がある。
1.Alert内のMetaInfの拡張可能要素EMIを介してDMサーバにパッケージの名前を報告する。これは、次のプログラムを使用して実施することができ、ここで、Pkg1は、管理ノードが端末によって生成される時にその管理ノードに割り当てられる名前である。
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data> <!-- Generic Alert -->
<Correlator>abcl23</Correlator>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</LocURI></S
ource>
<Target><LocURI>./SCOMO/Inventory/Delivered/Pkgl</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf">text/plain</Format>
<Mark xmlns="syncml:metinf">critical</Mark>
<EMI xmlns="syncml:metinf">_Name</EMI><!-- package information
to be reported -->
</Meta>
<Data>
<!-- Result Code -->
</Data>
</Item>
</Alert>
上のプログラムでは、EMIの値を、Delivered/Pkg1/Name内の情報、Delivered/Pkg1/PkgID内の情報、またはその両方とすることができる。
2.AlertにItem要素を追加し、追加されたItemのData要素を介してDMサーバにソフトウェアコンポーネントパッケージ情報を報告する。これは、次のプログラムを介して実施することができる。
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data> <!-- Generic Alert -->
<Correlator>abc123</Correlator>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</LocURI></S
ource>
<Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf">text/plain</Format>
<Mark xmlns="syncml:metinf">critical</Mark>
</Meta>
<Data>
<!-- Result Code -->
</Data>
</Item>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</LocURI><S
ource>
<Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1/Name</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf">chr</Format>
</Meta>
<Data>_Name</Data> <!-- package information to be reported -->
</Item>
</Alert>
上のプログラムでは、Dataの値を、Delivered/Pkg1/Name内の情報、Delivered/Pkg1/PkgID内の情報、またはその両方とすることができる。
3.IDおよび/またはNameと一緒に、AlertのItem/Data要素内でResult Codeを報告する。サーバがItem/Data要素内でResult Code、ID、および/またはNameを正しく解決するのを助けるために、Item/Data要素のデータフォーマットを定義する必要がある。このフォーマットは、"Result Code(separator)ID"またはExtendable Markup Language (XML)フォーマットとすることができる。特定の報告プログラム(XMLフォーマットの)の1セクションは、次のとおりであり、ここで、Pkg1は、管理ノードが端末によって生成される時にその管理ノードに割り当てられる名前である。
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data> <!-- Generic Alert-->
<Correlator>abc123</Correlator>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg1/Operations/Download</LocURI></S
ource>
<Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf"> text/plain </Format>
<Mark xmlns="syncml:metinf">critical</Mark>
</Meta>
<Data>
<![CDATA[
<ResultCode>200</ResultCode>
<Identifier>1123sdf312</Identifier>
]]>
</Data>
</Item>
</Alert>
同期報告では、動作結果が、Execコマンドに対応するStatusコマンドを介して報告される。StatusコマンドのData要素が、動作のDM状況コードを伝える。Statusコマンドは、Deliveredサブツリーの下のPkg1管理ノードのURIをも報告する。Statusコマンドは、ソフトウェアコンポーネントパッケージのNameまたはPkgIDをも報告することができる。報告方法は、次のとおりである。Statusコマンドは、Itemを伝え、ItemのTarget要素は、Deliveredサブツリーの下のPkg1管理ノードのURIを伝え、Source要素は、Exec動作を実行するノードのURIを伝える。報告は、次のプログラムを介して実施することができる。
<Status>
<MsgRef>1</MsgRef>
<CmdRef>2</CmdRef>
<Cmd>Exec</Cmd>
<Data>200</Data> <!-- Successful -->
<Item>
<Target>
<LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI>
</Target>
</Item>
</Status>
実行状況に加えて、Delivered/Pkg1/NAMEまたはDelivered/Pkg1/PkgIDおよびパッケージ動作状況コードを、同時に報告することができる。ソフトウェアコンポーネントパッケージ動作コードを、Item/Data要素で伝えることができ、Delivered/Pkg1/NAMEまたはDelivered/Pkg1/PkgIDを、EMI要素内で、並列Item内で、またはItem/Data要素内で組み合わせて(ソフトウェアコンポーネント動作コードも報告される場合に、状況コードも組み合わされる)伝えることができる。組み合わされた報告について、サーバがItem/Data要素内の異なるデータを正しく解決するのを助けるために、Item/Data要素のデータフォーマットを定義する必要がある。このフォーマットは、"result code(separator)ID"またはXMLフォーマットとすることができる。特定の報告プログラムセグメント(XMLフォーマットの)は、次のとおりである。
<Status>
<MsgRef>1</MsgRef>
<CmdRef>2</CmdRef>
<Cmd>Exec</Cmd>
<Data>200</Data> <!-- Successful -->
<Item>
<Target>
<LocURI>./SCOMO/Inventory/Delivered /Pkg1</LocURI>
</Target>
<Meta><Format xmlns="syncml:metinf"> text/plain </Format></Meta>
<Data>
<![CDATA[
<ResultCode>200</ResultCode> <!-Status Code -->
<Identifier> 1123 sdf3 12</Identifier>
]]>
<Data>
</Item>
</Status>
DMサーバは、端末によって報告される情報に従って、ダウンロードされたソフトウェアコンポーネントパッケージおよび対応する管理ノードを判定する。この情報に基づいて、端末は、ソフトウェアコンポーネントパッケージに対して後続動作を実行することができる。
2.DownLoadInstall命令またはDownLoadInstallInactive命令を介する間接ダウンロード。
このダウンロードモードでは、DMサーバは、やはり、ソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブツリーの下に生成するように端末に指示する。次に、ステップ806が続き、端末は、DMサーバによって供給されたダウンロードアドレスからソフトウェアコンポーネントパッケージをローカルにダウンロードする。ダウンロードアドレスは、Downloadサブツリーの下の管理ノードのPkgURLサブノードに格納される。次に、ステップ807が続き、ダウンロードが成功の場合に、端末が、ダウンロードが完了した後に、Install動作またはInstallInactive動作を自動的に実行する。
3.直接ダウンロード。
ステップ808:DMサーバが、ソフトウェアコンポーネントパッケージ用の管理ノードをDeliveredサブツリーの下に生成するように端末に指示し、Deliveredサブツリーの下に生成された管理ノードのDataサブノードをターゲットとするReplaceコマンドを端末に送達する。端末は、サーバによってReplaceコマンドを介して送達されるソフトウェアコンポーネントパッケージデータを受信し、そのデータをDeliveredサブツリーの下の管理ノードのDataサブノードに格納し、ダウンロード応答メッセージをDMサーバに返す。
ステップ503:端末が、ダウンロードされたソフトウェアコンポーネントパッケージをローカルにインストールし、パッケージ内のソフトウェアコンポーネントに対応する管理ノードならびにその管理ノードのサブノードをSCOMOのDeployedサブツリーの下に生成する。
ダウンロードが完了した時に、端末は、入手されたソフトウェアコンポーネントパッケージをローカルにインストールする。明らかに、ダウンロードが直接である場合に、入手されたソフトウェアコンポーネントパッケージは、DMサーバによって直接に送達され、ダウンロードが間接である場合に、ソフトウェアコンポーネントパッケージは、DMサーバによって送達されたダウンロードアドレスから入手される。
インストールモードは、ダウンロードモードに伴って変化する。次で、直接ダウンロード、DownLoadを介する間接ダウンロード、ならびにDownLoadInstallおよびDownLoadInstallInactiveを介する間接ダウンロードの場合のめいめいのインストールプロセスを説明する。
1. DownLoadInstallまたはDownLoadInstallInactiveを介する間接ダウンロード。
DMサーバが、DownLoadInstall命令またはDownLoadInstallInactive命令を送達する場合に、端末は、ソフトウェアコンポーネントパッケージが成功してダウンロードされた後に、直接にソフトウェアコンポーネントパッケージをインストールする。ステップ502は、端末がDownLoadInstall命令またはDownLoadInstallInactive命令を介してソフトウェアコンポーネントパッケージをダウンロードするプロセスを記述する。この場合に、端末は、図6に示されているようにダウンロードされたソフトウェアコンポーネントパッケージ用の管理ノードをDeliveredサブツリーの下に生成し、アクセス制御権を管理ノードおよびそのサブノードに割り当てることができる。ここで、アクセス制御権を、DownLoad命令が送達される時にDeliveredサブツリーの下に生成される管理ノードへのアクセス制御権の割当てについてステップ502で説明したものと同一の形で割り当てることができる。その代わりに、端末が、対応する管理ノードをDeliveredサブツリーの下に生成しないものとすることができる。
端末は、ダウンロードされたソフトウェアコンポーネントパッケージをローカルにインストールし、パラメータが、インストールプロセスで要求される場合がある。1つのパラメータ送達方法が、ステップ501に記載されている。本発明の実施形態では、他の方法を、端末がパラメータを入手するために使用することができる。たとえば、DMサーバが、ダウンロードモードに直接ダウンロードまたはDownLoadコマンドを介する間接ダウンロードをセットする場合に、DMサーバが、端末からダウンロード応答メッセージを受信する時に、DMサーバは、端末がソフトウェアコンポーネントパッケージを成功してダウンロードしたと考え、Install命令またはInstallInactive命令を送信し、これを介して、DMサーバは、パラメータを端末に送達する。DMサーバが、ダウンロードモードにDownLoadInstallコマンドまたはDownLoadInstallInactiveコマンドを介する間接ダウンロードをセットする場合に、DMサーバは、DownLoadInstall命令コマンドまたはDownLoadInstallInactive命令コマンドを介して端末にパラメータを送達する。これは、実際には、パラメータが、Installコマンドを含むDMコマンドを介して送達されることを意味する。たとえば、Inventory/Delivered/<Pkg1>/Operations/Installサブノードが、動作を実行する時に、DMサーバは、インストール動作を実行するInventory/Delivered/<Pkg1>/Operations/Install実行可能ノードを指定するために、Install命令を送達する。この場合に、パラメータは、次のプログラムを介して送達される。
<Exec>
<CmdID>3</CmdID>
<Item>
<Target>
<LocURI>./SCOMO/Inventory/Delivered/Pkg1/Operations/Install</LocURI>
</Target>
<Data>-1-t</Data> <!-- Parameter -->
</Item>
</Exec>
上のプログラムでは、パラメータは、ExecコマンドのData要素で伝えられる。インストールプロセス中に、端末は、このパラメータに従ってインストールを実行することができる。
インストールが、DownLoadInstallまたはDownLoadInstallInactiveを介して実行される時に、インストールが失敗するが、ソフトウェアコンポーネントパッケージが除去されず、端末が、インストールの前にソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成しない場合に、端末は、ダウンロードされたソフトウェアコンポーネントパッケージ用の管理ノードをDeliveredサブツリーの下に生成する。この管理ノードを生成する前に、端末は、ダウンロードされたソフトウェアコンポーネントパッケージと同一のソフトウェアコンポーネントパッケージに対応する管理ノードが現在のDeliveredサブツリーの下に既に存在するかどうかを判断する必要がある。そのような管理ノードが存在する場合に、端末は、現在のDeliveredサブツリーの下の管理ノードおよびそのサブノードの情報を、ダウンロードされたソフトウェアコンポーネントパッケージの情報に変更し、アクセス制御権を更新された管理ノードおよびサブノードに割り当てる。そうでない場合に、端末は、ダウンロードされたソフトウェアコンポーネントパッケージ用の新しい管理ノードおよびそのサブノードをDeliveredサブツリーの下に生成し、アクセス制御権を新しい管理ノードおよびサブノードに割り当てる。ここで、アクセス制御権を、端末がDownLoad命令を介してソフトウェアコンポーネントパッケージをダウンロードする時のステップ502で説明したものと同一の形で割り当てることができる。しかし、割当て方法は、これに限定はされない。その後、端末は、障害情報を伝えるインストール応答メッセージをDMサーバに報告する。
インストールが成功の場合に、端末は、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントごとにDeployedサブツリーの下に管理ノードを生成する必要がある。図6に示されているように、端末が、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントの管理ノードを生成する時に、端末は、ソフトウェアコンポーネントのIDを入手し、そのIDを管理ノードのソフトウェアコンポーネントIDサブノードの値として(すなわち、Deployedサブツリーの下のIDノードの値として)セットする。ソフトウェアコンポーネントIDは、ネットワークによって、たとえばソフトウェアパブリッシャまたはソフトウェアコンポーネントパッケージパブリッシャによって供給され得る。コンポーネントIDを、ソフトウェアコンポーネントパッケージのメタデータとしてソフトウェアコンポーネントパッケージと一緒に端末に送達することができ、あるいは、ソフトウェアコンポーネントパッケージとは独立に端末に送達することができる。ソフトウェアコンポーネントIDは、ソフトウェアコンポーネントを一意に識別することができる。サーバ(DMサーバ、ソフトウェアパブリッシャ、またはパッケージパブリッシャ)は、このIDに従ってソフトウェアコンポーネントを認識することができる。管理ノードを生成する前に、端末は、Deployedサブツリーの下に既に存在する管理ノードに対応する1つまたは複数のソフトウェアコンポーネントが、インストールされたソフトウェアコンポーネントのうちの1つまたは複数と同一であるかどうかを判断する必要がある。この判断は、この形で実行することができる:ソフトウェアコンポーネントID(Deployedサブツリーの下のIDノード)またはソフトウェアコンポーネント名(Deployedサブツリーの下のNameノード)を比較する。IDが、判断の判断基準として採用される場合に、2つのソフトウェアコンポーネントのIDが同一である時に、その2つのソフトウェアコンポーネントは、同一であると考えられる。そうでない場合には、それらのソフトウェアコンポーネントは、異なる。同一のことが、判断の判断基準として名前が採用される時にあてはまる。2つのソフトウェアコンポーネントが同一である場合に、端末が既存ソフトウェアコンポーネントの管理ノードおよびそのサブノードの情報を変更する時に、端末は、既存PkgIDRefサブノードの値を変更せず(すなわち、その値が古いソフトウェアコンポーネントパッケージのPkgIDである、管理ノードに対応する古いソフトウェアコンポーネントと古いソフトウェアコンポーネントパッケージとの間の関係を保持し)、新しい関連付けを追加する(すなわち、インストールされたソフトウェアコンポーネントパッケージと管理ノードに対応するソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントとの間の関連付けを格納するためにDeployedサブツリーの下にPkgIDRefノードを追加する)。したがって、複数のPkgIDRefノードが、Deployedサブツリーの下に共存する場合がある。この機能を実現するために、表5に記載されているように、関連付け情報を格納するPkgIDRefノードのツリーオカレンスを「1つまたは複数」に変更する必要がある。
次の判断プロセスは、判断の判断基準として名前を採用する。
たとえば、ascendo_1という名前のソフトウェアコンポーネントを考慮されたい。Deployedサブツリーの下の管理ノードのNameサブノードの値がascendo_1である場合に、端末は、管理ノードの情報を、ダウンロードされ成功してインストールされるascendo_1ソフトウェアコンポーネントの情報に変更し、更新された管理ノードおよびそのサブノードにアクセス制御権を割り当てる。Deployedサブツリーの下のどの管理ノードのNameサブノードの値もがascendo_1ではない場合に、端末は、software component 1という名前の管理ノードをDeployedサブツリーの下に生成し、この管理ノードのNameサブノード値はascendo_1であり、端末は、この管理ノードおよびそのサブノードにアクセス制御権を割り当てる。software component 1という名前の管理ノードを、複数のモードでDeployedサブツリーの下に生成することができる。たとえば、図9に示されているように、Downloadサブツリーの下に生成される管理ノードが、ソフトウェアコンポーネントの情報を含む場合に、端末は、Deployedサブツリーの下の対応する管理ノードにソフトウェアコンポーネント情報を格納する。
ここで、端末が、同一のソフトウェアコンポーネントが既に存在すると判断するかどうかにはかかわりなく、アクセス制御権を更新されたまたは生成された管理ノードおよびそのサブノードに割り当てることが必要である。アクセス制御権を、ステップ502で説明した方法など、複数の方法で割り当てることができる。さらに、端末が、同一の名前の管理ノードが存在すると判断する場合に、他の割当て方法を適用することができる。たとえば、セットアクセス制御権を既存管理ノードのアクセス制御権と組み合わせ、組み合わされたアクセス制御権を新しいアクセス制御権として使用されたい。ここで、セットアクセス制御権は、Downloadサブツリーの下のソフトウェアコンポーネントパッケージのセットアクセス制御権とすることができる。特定の実行可能ノードへのアクセス制御権の割当ての例は、次のとおりである。Download/Pkg1/Operations/DownloadInstallノードが、インストール動作を実行し、Download/Pkg1のアクセス制御権は、Get=ServerA&Relace=ServerAであり、Download/Pkg1/Operations/DownloadInstallのアクセス制御権は、Get=ServerA&Exec=ServerAである。現在、Deployedサブツリーの下の同一のソフトウェアコンポーネントのために生成された管理ノードのアクセス制御権は、Get=ServerB&Relace=ServerBである。Operationsの下のすべての実行可能ノードのアクセス制御権は、Get=ServerB&Exec=ServerBである。端末が、Deployedサブツリーの下の同一コンポーネントの管理ノード情報を更新した後に、端末は、アクセスおよび管理権を有する新しいサーバとしてServerAをセットすることができ、あるいは、端末は、新しい管理ノードのアクセス制御権としてGet=ServerA+ServerB&Relace=ServerA+ServerBをセットすることができ、あるいは、端末は、管理ノードがその親ノードのアクセス制御権を継承するようにするためにアクセス制御権をヌルACLにセットすることができ、あるいは、端末は、Get=*などの特定のアクセス制御権をセットすることができる。
管理ノードのサブノードにアクセス制御権を割り当てる方法は、次のとおりである。サブノードが、管理ノードのアクセス制御権を継承し、あるいは、端末が、Downloadサブツリーの下のソフトウェアコンポーネントパッケージに対応する管理ノードの対応するサブノードのアクセス制御権をDeployedサブツリーの下の管理ノードのサブノードに割り当て、あるいは、端末が、Deployedサブツリーの下の管理ノードの実行可能サブノードのアクセス制御権としてDownloadサブツリーのアクセス制御権をセットする、すなわち、Deployedサブツリーの下のOperationsの3つの実行可能サブノード、Activated、Deactivated、およびRemoveのアクセス制御権に、Downloadサブツリーの下の管理ノードのOperationsの下の実行可能サブノード(Download、DownLoadInstall、およびDownLoadInstallInactive)のアクセス制御権を、および好ましくは、Downloadサブツリーの下のインストール動作を実行する実行可能サブノードのアクセス制御権をセットする。たとえば、インストールコマンドがDownLoadInstallである場合に、そのコマンドを実行する実行可能ノードは、Download/Pkg1/Operations/DownloadInstallであり、アクセス制御権は、Get=*&Exec=ServerAである。次に、端末は、Delivered/Pkg1/Operationsの下のすべての実行可能ノードにGet=*&Exec=ServerAを割り当てる。
アクセス制御権のこの組合せは、管理ノードが更新された後にServerBが管理ノードを操作することを可能にするが、セキュリティを弱める可能性がある。ユーザは、実際の必要に基づいてアクセス制御権を割り当てるための正しい方法を選択することができる。
インストールが成功であるかどうかにかかわりなく、端末は、インストール応答メッセージをDMサーバに報告する必要がある。相違は、インストールが失敗する場合に、端末が、障害メッセージをDMサーバに報告する必要もあることである。報告モードは、同期または非同期とすることができる。非同期の場合に、端末は、Generic Alertを送信する。非同期報告を介して報告される情報は、Result Code、Source、AlertType、およびCorrelatorを含み、ここで、Result Codeは、Generic AlertのItem/Data要素内で伝えられる。Source要素は、インストール命令を実行するノードのURIを伝える。インストールが成功の場合に、Target要素は、Deployedサブツリーの下の対応する管理ノードのURIを伝える必要があり、ダウンロードが成功するがインストールが失敗し(Result Code: 60)、対応する管理ノードがDeliveredサブツリーの下に生成される場合に、Target要素は、Deliveredサブツリーの下に生成される管理ノードのURIをも伝える必要がある。さらに、報告される情報は、ソフトウェアコンポーネントの名前またはIDをも伝えることができる。名前またはIDは、ステップ502で説明したものと同一の方法で報告され、ここで、端末は、ダウンロードがDownLoad命令を介して実行される時に、ダウンロード応答メッセージを報告する。
報告が同期式である場合に、端末は、Execコマンドに対応するStatusコマンドを介して実行結果を報告する。StatusコマンドのData要素が、動作のDM状況コードを伝える。インストールが成功の場合に、Statusコマンドは、Deployedサブツリーの下に生成される管理ノードのURIを伝える必要があり、ソフトウェアコンポーネントパッケージのNameおよび/またはPkgIDをも伝えることができる。具体的に言うと、Statusコマンドは、Itemを伝え、このItemのTarget要素が、Inventory/Deployedサブツリーの下に生成される管理ノードのURIを伝える。Statusコマンドは、実行結果と一緒に、ソフトウェアコンポーネント情報(NameまたはID)および/またはソフトウェアコンポーネント動作状況コードをも伝えることができる。Inventory/Deployedサブツリーの下の名前またはID情報を、EMI要素または並列Item内で伝えるか、Item/Data要素のデータに組み合わせることができる(状況コードは、ソフトウェアコンポーネント動作状況コードを報告する必要がある場合にも組み合わされる)。ソフトウェアコンポーネント動作状況コードは、Data要素内で伝えられる。同期報告は、ステップ502での同期報告に似ている。特定のコードの例については、ステップ502の同期報告のコードを参照されたい。
明らかに、DMサーバがパラメータを送達しない場合に、この実施形態の他のステップを、それでも正常に実行することができる。DMサーバが報告される情報を受信した後に、端末は、その情報に従ってソフトウェアコンポーネントに対する後続動作に進むことができる。
2.直接ダウンロードまたはDownLoadを介する間接ダウンロード。
ソフトウェアコンポーネントパッケージが直接ダウンロードモードまたはDownLoadを介する間接モードでダウンロードされた後に、端末は、ダウンロード応答メッセージをサーバに送信する。ダウンロード応答メッセージの受信時に、DMサーバは、インストール命令すなわちInstallまたはInstallInactiveを端末に送達する。インストール動作を実行する実行可能ノードは、Inventory/Delivered/<Pkg1>/Operations/InstallまたはInventory/Delivered/<Pkg1>/Operations/InstallInactiveである。実のところ、インストール命令を、動作インターフェースを介して、インストール動作を実行する実行可能ノードに送信することができる。インストールを実行する前に、端末は、インストール命令を送達するDMサーバが、ソフトウェアコンポーネントパッケージに作用する権利を有するかどうかを判断する必要がある。これは、DMサーバがInventory/Delivered/<Pkg1>/Operations/InstallまたはInventory/Delivered/<Pkg1>/Operations/InstallInactive実行可能ノードにアクセスし、これを管理する権利を有するかどうかを端末が判断することを意味する。パッケージが直接にダウンロードされる場合に、Inventory/Delivered/<Pkg1>/Operations/InstallまたはInventory/Delivered/<Pkg1>/Operations/InstallInactive実行可能ノードのアクセス制御権は、ダウンロード命令を送達するDMサーバによって割り当てられる。ダウンロード命令がDownloadである場合に、Inventory/Delivered/<Pkg1>/Operations/InstallまたはInventory/Delivered/<Pkg1>/Operations/InstallInactive実行可能ノードのアクセス制御権は、端末によって割り当てられる。
DMサーバが権利要件を満足する(DMサーバが実行可能ノードにアクセスし、これを管理する権利を有することを意味する)場合に、インストールが完了した後に、端末は、図6または7に示されているように、Deployedサブツリーの下にascendo_1、ascendo_2、およびascendo_3という名前のソフトウェアコンポーネントに対応する管理ノードを生成する。端末が、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネント用の管理ノードを生成する時に、端末は、ソフトウェアコンポーネントのIDを入手し、そのIDを管理ノードのソフトウェアコンポーネントIDサブノードの値(Deployedサブツリーの下のIDノードの値)としてセットする。ソフトウェアコンポーネントIDは、ネットワークによって、たとえばソフトウェアパブリッシャまたはソフトウェアコンポーネントパッケージパブリッシャによって供給され得る。ソフトウェアコンポーネントIDを、ソフトウェアコンポーネントパッケージのメタデータとしてソフトウェアコンポーネントパッケージと一緒に端末に送達することができ、あるいは、ソフトウェアコンポーネントパッケージとは独立に端末に送達することができる。ソフトウェアコンポーネントIDは、ソフトウェアコンポーネントを一意に識別することができる。サーバ(DMサーバ、ソフトウェアパブリッシャ、またはソフトウェアコンポーネントパッケージパブリッシャ)は、このIDに従ってソフトウェアコンポーネントを認識することができる。端末が、3つのソフトウェアコンポーネントの管理ノードを生成する前に、端末が、3つの同一のソフトウェアコンポーネントに対応する管理ノードがDeployedサブツリーの下に存在しないと判定する場合に、端末は、ascendo_1、ascendo_2、およびascendo_3ソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成する。そのような管理ノードが存在する場合には、端末は、管理ノードおよびそのサブノードの情報をソフトウェアコンポーネントの情報に変更する。端末が、ソフトウェアコンポーネントの管理ノードおよびそのサブノードの情報を変更する時に、端末は、既存PkgIDRefサブノードの値を保持し(その値が古いソフトウェアコンポーネントパッケージのPkgIDである、管理ノードに対応する古いソフトウェアコンポーネントと古いソフトウェアコンポーネントパッケージとの間の関連付けを保持し)、新しい関連付けを追加する(インストールされたソフトウェアコンポーネントパッケージと管理ノードに対応するソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントとの間の関連付けを格納するためにDeployedサブツリーの下にPkgIDRefノードを追加する)。したがって、複数のPkgIDRefノードが、Deployedサブツリーの下に存在する場合がある。判断結果が何であれ、端末は、更新されたまたは新たに生成された管理ノードおよびその管理ノードのサブノードにアクセス制御権を割り当てる。ここでの割当て方法は、前述のDownLoadInstallまたはDownLoadInstallInactiveを介する間接ダウンロードモードで使用される方法と同一とすることができる。
したがって、端末がインストール応答メッセージをDMサーバに報告する時に、報告モードを、同期または非同期とすることもできる。非同期報告の場合に、応答メッセージは、Generic Alertを介して送信され、報告される情報は、Result Code、Source、Target、AlertType、およびNameを含み、ここで、Result Codeは、Generic AlertのItem/Data要素内で伝えられる。Source要素は、インストール命令を実行するノードのURIを伝える。Target要素は、ソフトウェアコンポーネントがインストールされた後のDeployedサブツリーのURIを伝える。上の情報に加えて、応答メッセージは、ソフトウェアコンポーネントの名前またはIDをも伝える必要がある。名前またはIDが報告される形は、DownLoadを介するダウンロードの場合にダウンロード応答メッセージが報告される時のステップ502と同一である。DMサーバは、端末によって報告される情報に従って、インストールされたソフトウェアコンポーネントおよび対応する管理ツリーを判定する。この情報に基づいて、端末は、ソフトウェアコンポーネントに対する後続管理動作を実行することができる。
報告が同期式である場合に、端末は、Execコマンドに対応するStatusコマンドを介して実行結果を報告する。StatusコマンドのData要素が、動作のDM状況コードを伝える。端末は、ソフトウェアコンポーネント用の管理ノードのURI、ソフトウェアコンポーネントID(Deployedサブツリーの下のIDノード)および/またはソフトウェアコンポーネント名(Deployedサブツリーの下のNameノード)を含む、Deployedサブツリーの下の管理ノードの情報をも報告する。報告方法は、次のとおりである。Statusコマンドは、Itemを伝え、そのItemのTarget要素は、インストールされたソフトウェアコンポーネント用の管理ノードのURIを伝え、あるいは、状況が報告される時に、ソフトウェアコンポーネント情報(NameまたはID)および/またはソフトウェアコンポーネント動作状況コードを伝えることができる。Deployedサブツリーの下の管理ノードの名前またはID情報を、EMI要素または並列Item内で伝えることができ、あるいは、Item/Data要素のデータに組み合わせることができる(状況コードは、ソフトウェアコンポーネント動作状況コードを報告する必要がある場合にも組み合わされる)。ソフトウェアコンポーネント動作状況コードは、Data要素内で伝えられる。同期報告は、ステップ502での同期報告に似ている。特定のコードの例については、ステップ502の同期報告のコードを参照されたい。
報告モードが同期または非同期のどちらであるかにかかわりなく、端末がDownLoadInstall動作またはDownLoadInstallInactive動作を実行し、ソフトウェアコンポーネント管理ノードおよびそのサブノードをDeployedサブツリーの下に生成した後に、端末が、ソフトウェアコンポーネントパッケージに対応する管理ノードをもSCOMOのDeliveredサブツリーの下に生成する場合には、インストール応答メッセージは、Deployedサブツリーの下に生成される管理ノードのURIおよびDeliveredサブツリーの下に生成される管理ノードのURIを含む。サーバは、URIが、SCOMOツリー内のソフトウェアコンポーネントパッケージのアドレスまたはSCOMOツリー内のインストールされたソフトウェアコンポーネントのアドレスを示すかどうかを、報告されるメッセージのItem/Data要素内で伝えられるURIに従って判断する。特定の判断方法は、次のとおりである。サーバは、URIがDeliveredストリングまたはDeployedストリングを含むかどうかをチェックし、Deliveredストリングが含まれる場合には、URIは、SCOMOツリー内のパッケージのアドレスを示し、そうでない場合には、URIは、SCOMOツリー内のインストールされたソフトウェアコンポーネントのアドレスを示す。次は、非同期に報告されるメッセージの例である。
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data> <!-- Generic Alert-->
<Correlator>abc123</Correlator>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg1/Operations/DownloadInstall</LocU
RI></Source>
<Target><LocURI>./SCOMO/Inventory/Delivered/Pkg1</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf">text/plain</Format>
</Meta>
<Data> ... </Data>
</Item>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg1/Operations/DownloadInstall</LocU
RI><Source> <Target><LocURI>./SCOMO/Inventory/Deployed/Com1
</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org. openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf">chr</Format>
</Meta>
<Data> ... </Data>
</Item>
</Alert>
本発明のこの実施形態では、このプロセスを、パラメータに基づくインストールプロセスとすることができる。パラメータの存在にかかわりなく、他のインストールステップは、影響を受けない。インストールが完了した後に、Remove実行可能ノードを呼び出して、インストールされたコンポーネントを除去することができる。
図10に示された本発明の実施形態で提供される端末は、受信ユニット11、ダウンロードユニット12、およびインストールユニット13を含む。受信ユニット11は、DMサーバによって送達されるソフトウェアコンポーネントパッケージまたはソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを受信するように適合され、ここで、ソフトウェアコンポーネントパッケージは、複数のソフトウェアコンポーネントを含む。ダウンロードユニット12は、受信ユニット11がダウンロードアドレスおよびダウンロードを指示するコマンドを受信する場合に、ダウンロードアドレスに従ってソフトウェアコンポーネントパッケージをダウンロードするように適合される。インストールユニット13は、入手されたソフトウェアコンポーネントパッケージをローカルにインストールし、ソフトウェアコンポーネントに対応する管理ノードおよびそのサブノードをDeployedサブツリーの下に生成するように適合される。
ダウンロードを指示するコマンドがDownLoadである場合に、ソフトウェアコンポーネントパッケージがダウンロードされた後、ソフトウェアコンポーネントパッケージがインストールされる前に、あるいは、ダウンロードを指示するコマンドがDownLoadInstallまたはDownLoadInstallInactiveである場合に、ダウンロードが成功であるがインストールが失敗する場合に、端末は、さらに、第1生成ユニット14および第1権利割当てユニット15を含む。第1生成ユニット14は、ソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成するように適合され、第1権利割当てユニット15は、アクセス制御権を管理ノードおよび管理ノードのサブノードに割り当てるように適合される。
ソフトウェアコンポーネントパッケージに対応する管理ノードがDeliveredサブツリーの下に生成される前に、端末は、さらに、第1判断ユニット16を含み、第1判断ユニット16は、ダウンロードされたソフトウェアコンポーネントパッケージのIDがDeliveredサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントパッケージのIDと同一であるかどうかを判断し、そうである場合には、Deliveredサブツリーの下の管理ノードの情報をダウンロードされたソフトウェアコンポーネントパッケージの情報に変更し、そうでない場合には、ダウンロードされたソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成するように適合される。
情報を受信する前に、受信ユニット11は、ソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブツリーの下に生成するようにさらに適合され、第1権利割当てユニット15は、Downloadサブツリーの下に生成される管理ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードのアクセス制御権としてセットし、あるいは、Deliveredサブツリーの下に生成される管理ノードがその親ノードのアクセス制御権を継承するようにするために、その管理ノードのアクセス制御権にヌルをセットし、あるいは、Deliveredサブツリーの下に生成される管理ノードの特定のアクセス制御権をセットし、あるいは、Downloadサブツリーの下に生成される管理ノードのアクセス制御権とDeliveredサブツリーの下に生成される管理ノードの親ノードのアクセス制御権とを組み合わせ、組み合わされたアクセス制御権をDeliveredサブツリーの下に生成される管理ノードのアクセス制御権としてセットするようにさらに適合される。
情報を受信する前に、受信ユニット11は、ソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブツリーの下に生成するようにさらに適合され、第1判断ユニット16が、ダウンロードされたソフトウェアコンポーネントパッケージがDeliveredサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントパッケージと同一であると判断する時に、第1権利割当てユニット15は、Downloadサブツリーの下に生成される管理ノードのアクセス制御権とDeliveredサブツリーの下に既に存在する管理ノードのアクセス制御権との合計をDeliveredサブツリーの下の管理ノードのアクセス制御権としてセットするようにさらに適合される。
第1権利割当てユニット15は、Deliveredサブツリーの下に生成される管理ノードのサブノードにその管理ノードのアクセス制御権を継承させ、あるいは、Downloadサブツリーの下の実行可能ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードの実行可能ノードのアクセス制御権としてセットするようにも適合される。
ダウンロードユニット12が、ソフトウェアコンポーネントパッケージをダウンロードした後に、受信ユニット11は、DeliveredサブツリーノードのためにDMサーバによって送達されるDMコマンドを受信し、そのノードに割り当てられたアクセス制御権に従って、DMサーバがそのノードに対してDMコマンドを実行する権利を有するかどうかを判断し、DMサーバがその権利を有する場合に、そのDMコマンドをそのノードに対して実行するようにさらに適合され、端末は、さらに、第2判断ユニット17を含み、第2判断ユニット17は、DMサーバがDMコマンドによって操作されるDeliveredサブツリーの下に生成されるノードにアクセスし、これを制御する権利を有するかどうかを判断し、そうである場合に、そのノードに対してDMコマンドを実行するように適合される。
受信ユニット11は、DMサーバによって送達されるパラメータを受信するようにさらに適合され、インストールユニット13は、パラメータに従って、ダウンロードされたソフトウェアコンポーネントパッケージをローカルにインストールするようにさらに適合される。
インストールユニット13が、インストールを実行した後、ソフトウェアコンポーネントに対応する管理ノードが、Deployedサブツリーの下に生成される前に、端末は、さらに、第3判断ユニット18を含み、第3判断ユニット18は、ソフトウェアコンポーネントパッケージ内の1つのソフトウェアコンポーネントが、Deployedサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントと同一であるかどうかを判断し、そうである場合には、Deployedサブツリーの下の管理ノードの情報をソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントの情報に変更し、そうでない場合には、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成するように適合される。
DMサーバによって直接にDMコマンドを介して送達されるソフトウェアコンポーネントパッケージを受信する前に、受信ユニット11は、DMサーバの命令に従って、ソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成するようにさらに適合され、ここで、管理ノードは、ソフトウェアコンポーネント情報を含み、端末は、第2生成ユニット19をさらに含み、第2生成ユニット19は、Deliveredサブツリーの下の管理ノードに含まれるソフトウェアコンポーネント情報をDeployedサブツリーに格納するように適合される。
ソフトウェアコンポーネントに対応する管理ノードがDeployedサブツリーの下に生成された後に、端末は、アクセス制御権を管理ノードおよびそのサブノードに割り当てるように適合された第2権利割当てユニット20をさらに含む。
第2権利割当てユニット20は、DeliveredサブツリーまたはDownloadサブツリーの下に生成されるソフトウェアコンポーネントパッケージに対応する管理ノードのアクセス制御権をDeployedサブツリーの下に生成される管理ノードのアクセス制御権としてセットし、あるいは、Deployedサブツリーの下に生成される管理ノードがその親ノードのアクセス制御権を継承するようにするために、その管理ノードのアクセス制御権にヌルをセットし、あるいは、Deployedサブツリーの下に生成される管理ノードの特定のアクセス制御権をセットし、あるいは、DeliveredサブツリーもしくはDownloadサブツリーの下の管理ノードのアクセス制御権とDeployedサブツリーの下に生成される管理ノードの親ノードのアクセス制御権とを組み合わせ、組み合わされたアクセス制御権をDeployedサブツリーの下に生成される管理ノードのアクセス制御権としてセットするようにも適合される。
第2権利割当てユニット20は、Deployedサブツリーの下に生成される管理ノードのサブノードにその管理ノードのアクセス制御権を継承させ、あるいは、DeliveredサブツリーまたはDownloadサブツリーの下の実行可能ノードのアクセス制御権をDeployedサブツリーの下に生成される管理ノードの実行可能ノードのアクセス制御権としてセットするようにも適合される。
ソフトウェアコンポーネントに対応する管理ノードが、Deployedサブツリーの下に生成された後に、受信ユニット11は、DeployedサブツリーノードのためにDMサーバによって送達されるDMコマンドを受信し、そのノードに割り当てられたアクセス制御権に従って、そのDMサーバがそのノードに対してそのDMコマンドを実行する権利を有するかどうかを判断し、そのDMサーバがその権利を有する場合に、そのDMコマンドをそのノードに対して実行するようにさらに適合され、端末は、第4判断ユニット21をさらに含み、第4判断ユニット21は、DMサーバがDMコマンドによって操作されるDeployedサブツリーの下に生成されたノードにアクセスし、これを管理する権利を有するかどうかを判断し、そうである場合に、そのDMコマンドをそのノードに対して実行するように適合される。
ダウンロードを指示するコマンドが、間接ダウンロード命令としてDownLoadを伝える場合に、ダウンロードが成功した後、ソフトウェアコンポーネントパッケージがインストールされる前に、端末は、さらに、報告ユニット22を含み、報告ユニット22は、ダウンロード応答メッセージをDMサーバに報告するように適合され、ここで、ダウンロード応答メッセージは、Deliveredサブツリーの下に生成される管理ノードのURIを含む。ソフトウェアコンポーネントに対応する管理ノードがSCOMOのDeployedサブツリーの下に生成された後に、報告ユニット22は、インストール応答メッセージをDMサーバに報告するようにさらに適合され、ここで、インストール応答メッセージは、Deployedサブツリーの下に生成される管理ノードのURIを含む。
ダウンロード応答メッセージおよびインストール応答メッセージは、同期モードまたは非同期モードで報告される。
報告モードが同期である場合に、報告ユニット22は、StatusコマンドのItem要素のTargetサブ要素を介してダウンロード応答メッセージまたはインストール応答メッセージ内でURIを伝えるようにさらに適合される。
ダウンロード応答メッセージは、ソフトウェアコンポーネントパッケージの名前および/またはIDをさらに含み、インストール応答メッセージは、ソフトウェアコンポーネントの名前および/またはIDをさらに含む。
DownLoadが、直接ダウンロードまたは間接ダウンロードを示すのに使用される場合に、ソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成した後に、端末は、ソフトウェアコンポーネントパッケージの状態にInstalledをセットするように適合されたセッティングユニット23をさらに含む。
本発明の実施形態で提供される端末のワークフローを、図11に示す。このワークフローは、次を含む。
ステップ1101:端末が、DMサーバによって送達される、ソフトウェアコンポーネントパッケージまたはソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを受信し、ここで、ソフトウェアコンポーネントパッケージは、複数のソフトウェアコンポーネントを含む。
ステップ1102:端末が、ダウンロードアドレスおよびダウンロードを指示するコマンドを受信する場合に、端末は、ダウンロードアドレスに従ってソフトウェアコンポーネントパッケージをダウンロードする。
ステップ1103:端末が、入手されたソフトウェアコンポーネントパッケージをローカルにインストールし、ソフトウェアコンポーネントに対応する管理ノードならびにその管理ノードのサブノードを生成する。
端末のセキュリティを高めるために、端末によって生成される管理ノードおよびサブノードにアクセス制御権を割り当てることが必要である。ダウンロードプロセスでは、特定の動作ステップは、次のとおりである。ダウンロードを指示するコマンドがDownLoadである場合に、ソフトウェアコンポーネントパッケージがダウンロードされた後、ソフトウェアコンポーネントパッケージがインストールされる前に、あるいは、ダウンロードを指示するコマンドがDownLoadInstallまたはDownLoadInstallInactiveである場合に、ダウンロードが成功するがインストールが失敗する場合に、端末は、ソフトウェアコンポーネントパッケージに対応する管理ノードをSCOMOのDeliveredサブツリーの下に生成し、その管理ノードおよびその管理ノードの各サブノードにアクセス制御権を割り当てる。
ソフトウェアコンポーネントパッケージに対応する管理ノードがDeliveredサブツリーの下に生成される前に、データ冗長性を避け、ソフトウェアコンポーネントのアップグレードを実現するために、端末は、ダウンロードされたソフトウェアコンポーネントパッケージのIDが、Deliveredサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントパッケージのIDと同一であるかどうかを判断する必要があり、そうである場合には、端末は、Deliveredサブツリーの下の管理ノードの情報をダウンロードされたソフトウェアコンポーネントパッケージの情報に変更し、そうでない場合には、端末は、ダウンロードされたソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成する。
管理ノードが、端末がDMサーバによって送達される情報を受信する前にDownloadサブツリーの下にソフトウェアコンポーネントパッケージのために既に生成されている場合に、アクセス制御権を割り当てる1つの方法は、次のとおりである。端末が、Downloadサブツリーの下に生成される管理ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードのアクセス制御権としてセットする。端末が、ダウンロードされたソフトウェアコンポーネントパッケージがDeliveredサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントパッケージと同一であると判断する場合に、アクセス制御権を割り当てるもう1つの方法は、次のとおりである。端末が、Downloadサブツリーの下に生成されるソフトウェアコンポーネントパッケージに対応する管理ノードのアクセス制御権とDeliveredサブツリーの下に既に存在する管理ノードのアクセス制御権との合計をDeliveredサブツリーの下の管理ノードのアクセス制御権としてセットする。
アクセス制御権を管理ノードに割り当てることに加えて、端末は、アクセス制御権を管理ノードのサブノードに割り当てる必要もある。特定の方法は、次のとおりである。端末は、Deliveredサブツリーの下に生成される管理ノードのサブノードに管理ノードのアクセス制御権を継承させ、あるいは、Downloadサブツリーの下の実行可能ノードのアクセス制御権をDeliveredサブツリーの下に生成される管理ノードの実行可能ノードのアクセス制御権としてセットする。
端末がソフトウェアコンポーネントパッケージをダウンロードした後に、端末は、Deliveredサブツリーノードに関してDMサーバによって送達されるDMコマンドを受信し、そのノードに割り当てられたアクセス制御権に従って、そのDMサーバがそのDMコマンドをそのノードに対して実行する権利を有するかどうかを判断し、そのDMサーバがその権利を有する場合に、そのDMコマンドをそのノードに対して実行する。
インストールプロセスがパラメータを必要とする場合に、端末は、DMサーバによって送達されるパラメータをも受信し、そのパラメータに従って、ダウンロードされたソフトウェアコンポーネントパッケージをローカルにインストールする。
端末がインストールを実行した後、ソフトウェアコンポーネントに対応する管理ノードがDeployedサブツリーの下に生成される前に、端末は、さらに、ソフトウェアコンポーネントパッケージ内の1つのソフトウェアコンポーネントが、Deployedサブツリーの下に既に存在する管理ノードに対応するソフトウェアコンポーネントと同一であるかどうかを判断し、そうである場合には、Deployedサブツリーの下の管理ノードの情報をソフトウェアコンポーネントパッケージ内のそのソフトウェアコンポーネントの情報に変更し、そうでない場合には、端末は、ソフトウェアコンポーネントパッケージ内のそのソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成する。
端末は、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に複数の方法で生成することができる。たとえば、DMサーバによってDMコマンドを介して直接に送達されるソフトウェアコンポーネントパッケージを受信する前に、端末は、DMサーバの命令に従ってソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成し(管理ノードは、ソフトウェアコンポーネント情報を含む)、Deliveredサブツリーの下の管理ノードに含まれるソフトウェアコンポーネント情報をDeployedサブツリーに格納する。
端末が、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成した後に、端末は、管理ノードおよびそのサブノードにアクセス制御権を割り当てることを必要とする。
アクセス制御権を割り当てる方法は、次を含むがこれに限定はされない。DeliveredサブツリーまたはDownloadサブツリーの下のソフトウェアコンポーネントパッケージに対応する管理ノードのアクセス制御権をDeployedサブツリーの下に生成される管理ノードのアクセス制御権としてセットすること、Deployedサブツリーの下に生成される管理ノードのサブノードにその管理ノードのアクセス制御権を継承させること、あるいはDeliveredサブツリーまたはDownloadサブツリーの下の実行可能ノードのアクセス制御権をDeployedサブツリーの下に生成される管理ノードの実行可能ノードのアクセス制御権としてセットすること。
端末が、ソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成した後に、端末は、Deployedサブツリーノードに関してDMサーバによって送達されるDMコマンドを受信し、そのノードに割り当てられたアクセス制御権に従って、そのDMサーバがそのノードに対してそのDMコマンドを実行する権利を有するかどうかを判断し、そのDMサーバがその権利を有する場合に、そのノードに対してそのDMコマンドを実行する。
ダウンロードを指示するコマンドが、間接ダウンロード命令としてDownLoadを伝える場合に、ダウンロードが成功した後、ソフトウェアコンポーネントパッケージがインストールされる前に、端末は、ダウンロード応答メッセージをDMサーバに報告し、ここで、ダウンロード応答メッセージは、Deliveredサブツリーの下に生成される管理ノードのURIを含む。ソフトウェアコンポーネントに対応する管理ノードが、SCOMOのDeployedサブツリーの下に生成された後に、端末は、インストール応答メッセージをDMサーバに報告し、ここで、インストール応答メッセージは、Deployedサブツリーの下に生成される管理ノードのURIを含む。
ダウンロード応答メッセージおよびインストール応答メッセージは、同期モードまたは非同期モードで報告される。
報告モードが同期である場合に、端末は、StatusコマンドのItem要素のTargetサブ要素を介して、ダウンロード応答メッセージまたはインストール応答メッセージ内でURIを伝える。
ダウンロード応答メッセージは、ソフトウェアコンポーネントパッケージの名前および/またはIDをさらに含み、インストール応答メッセージは、ソフトウェアコンポーネントの名前および/またはIDをさらに含む。
DownLoadが、直接ダウンロードまたは間接ダウンロードを示すのに使用される場合に、ソフトウェアコンポーネントに対応する管理ノードをDeployedサブツリーの下に生成した後に、端末は、ソフトウェアコンポーネントパッケージの状態にInstalledをセットする。
本発明の実施形態は、DMサーバを提供する。図12に示されているように、DMサーバは、送達ユニット31を含み、送達ユニット31は、ソフトウェアコンポーネントパッケージを、DMコマンドを介して端末に直接に送達し、あるいはソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを端末に送達するように適合され、ここで、ソフトウェアコンポーネントパッケージは、複数のソフトウェアコンポーネントを含む。
DMサーバは、端末によって報告されるメッセージを受信するように適合された受信ユニット32をさらに含み、ここで、メッセージは、Deliveredサブツリーの下に生成される管理ノードのURI、Deployedサブツリーの下に生成される管理ノードのURI、ソフトウェアコンポーネントパッケージの名前およびID、ならびにソフトウェアコンポーネントの名前およびIDというアイテムのうちの1つまたは複数を含む。
送達ユニット31は、端末がソフトウェアコンポーネントパッケージをインストールする前に端末にパラメータを送達するようにさらに適合される。
送達ユニット31は、第1指示ユニット33および送信ユニット34を含み、第1指示ユニット33は、ダウンロードが間接である場合にソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブツリーの下に生成し、管理ノードのサブノードを追加するように端末に指示し、ダウンロードが直接である場合にソフトウェアコンポーネントパッケージ用の管理ノードをDeliveredサブツリーの下に生成し、管理ノードのサブノードを追加するように端末に指示するように適合され、送信ユニット34は、DownloadサブツリーまたはDeliveredサブツリーの下に追加されたサブノードにパラメータを送信するように適合される。
送達ユニット31は、端末にDMコマンドを介してパラメータを送達するようにさらに適合され、このDMコマンドは、端末にインストールを実行するように指示する。
DMサーバは、第2指示ユニット35をさらに含み、第2指示ユニット35は、送達ユニット31がソフトウェアコンポーネントパッケージを、DMコマンドを介して端末に直接に送達する前に、ソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成するように端末に指示するように適合され、ここで、管理ノードは、ソフトウェアコンポーネント情報を含む。
本発明の実施形態で提供されるDMサーバのワークフローを、図13に示す。このワークフローは、次を含む。
ステップ1301:DMサーバが、DMコマンドを介して端末に直接にソフトウェアコンポーネントパッケージを送達し、あるいは、ソフトウェアコンポーネントパッケージのダウンロードアドレスおよびダウンロードを指示するコマンドを端末に送達し、ここで、ソフトウェアコンポーネントパッケージは、複数のソフトウェアコンポーネントを含む。
ステップ1302:DMサーバが、端末によって報告されるメッセージを受信し、メッセージは、Deliveredサブツリーの下に生成される管理ノードのURI、Deployedサブツリーの下に生成される管理ノードのURI、ソフトウェアコンポーネントパッケージの名前およびID、ならびにソフトウェアコンポーネントの名前およびIDというアイテムのうちの1つまたは複数を含む。
ステップ1303:端末がソフトウェアコンポーネントパッケージをインストールする前に、DMサーバが、パラメータを端末に送達する。送達方法は、次を含むことができる。
1.ダウンロードが間接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージ用の管理ノードをDownloadサブツリーの下に生成し、その管理ノードのサブノードを追加するように端末に指示し、あるいは、ダウンロードが直接である場合に、DMサーバは、ソフトウェアコンポーネントパッケージ用の管理ノードをDeliveredサブツリーの下に生成し、その管理ノードのサブノードを追加するように端末に指示し、その後、DMサーバは、DownloadサブツリーまたはDeliveredサブツリーの下に追加されたサブノードにパラメータを送達する。
2.DMサーバは、DMコマンドを介して端末にパラメータを送達し、このDMコマンドは、インストールを実行するように端末に指示する。
DMサーバがDMコマンドを介して端末に直接にソフトウェアコンポーネントパッケージを送達する前に、DMサーバは、そのソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成するように端末に指示し、この管理ノードは、ソフトウェアコンポーネント情報を含む。
第1実施形態で記録される特徴を、並列とすることができる。たとえば、異なるダウンロードプロセスで、送達されるパラメータを端末によって受信する際の技術的特徴、アクセス制御権を端末によって生成される管理ノードおよびサブノードに割り当てる際の技術的特徴、管理ノードの名前またはIDおよびターゲット管理ノードのURIをDMサーバに同期式にまたは非同期式に報告する際の技術的特徴、同一のソフトウェアコンポーネントまたは同一のソフトウェアコンポーネントパッケージに対応する管理ノードが存在するかどうかを判断する際の技術的特徴、成功のダウンロードおよび不成功のインストールの際に処理する際の技術的特徴、ならびにソフトウェアコンポーネント情報をソフトウェアコンポーネントパッケージに対応する管理ノードに含める際の技術的特徴を、並列とするか、組み合わせることができる。複数の可能な組み合わせがある。次の2つの実施形態は、特徴を任意の形で組み合わせることができることを示すために説明される。
本発明の第2の方法実施形態では、ダウンロードおよびインストールが、間接ダウンロードの場合にDownLoadInstall命令を介して実施される。この実施形態では、DMサーバがServerAであり、ソフトウェアコンポーネントパッケージ名がascendoであり、ソフトウェアコンポーネントパッケージIDがPkgID_2である。ソフトウェアコンポーネントパッケージは、ascendo_1、ascendo_2、およびascendo_3という名前の3つのソフトウェアコンポーネントを含む。ソフトウェアコンポーネントのIDは、それぞれComID_1、ComID_2、およびComID_3である。ダウンロードは成功であるが、インストールは失敗する。次を含む流れ図を、図14に示す。
ステップ1401:端末が、ソフトウェアコンポーネントパッケージをダウンロードし、インストールする。
ServerAは、ソフトウェアコンポーネントパッケージに対応する管理ノードを端末のDCOMOのDownloadサブツリーの下に生成し、図15に示されているようにソフトウェアコンポーネントパッケージの名前、バージョン、ダウンロードアドレス、およびパラメータを含む値を管理ノードに割り当てるように端末に指示する。パラメータ送達プロセスは、第1の実施形態で説明したものと同一とするか、別のプロセスとすることができる。
ソフトウェアコンポーネントパッケージに対応する管理ノードがDownloadサブツリーの下に生成された後に、ServerAは、アクセス制御権を管理ノードおよびサブノードに割り当てる。たとえば、Download/Pkg2管理ノードのアクセス制御権には、Get=*&Add=ServerA&Replace=ServerAがセットされる。Download/Pkg2/Operations/DownloadInstallサブノードのアクセス制御権は、Get=*&Exec=ServerAである。他のサブノードは、その親ノードのアクセス制御権を継承する。
次に、ServerAは、端末にExecコマンドを送信し、ここで、Target要素は、ダウンロード動作を実行する実行可能ノードがDownload/Pkg2/Operations/DownloadInstallであることを示す。特定の動作を、次のプログラムを介して実施することができる。
<Exec>
<CmdID>4</CmdID>
<Correlator>abc123</Correlator>
<Item>
<Target>
<LocURI>./SCOMO/Download/Pkg2/Operations/DownloadInstall</LocURI>
</Target>
</Item>
</Exec>
ソフトウェアコンポーネントパッケージをダウンロードした後に、端末は、そのソフトウェアコンポーネントパッケージを直接にインストールする。なんらかの理由でインストールが失敗し、ソフトウェアコンポーネントパッケージが端末内で保持されると仮定する。
ステップ1402:端末が、ソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成し、アクセス制御権を管理ノードおよびそのサブノードに割り当てる。
ソフトウェアコンポーネントパッケージに対応する管理ノードをDeliveredサブツリーの下に生成する前に、端末は、ソフトウェアコンポーネントパッケージに対応する管理ノードが、Deliveredサブツリーの下に既に存在するダウンロードされたソフトウェアコンポーネントパッケージと同一であるかどうかを判定する必要がある。そのような管理ノードが存在しない場合には、端末は、図16に示されているように、Delivered/Pkg2管理ノードを生成し、名前、バージョン、およびパラメータ情報を含むDelivered/Pkg2の固有情報を新しいDelivered/Pkg2管理ノードに格納し、そうでない場合には、端末は、既存のDelivered/Pkg2の情報を、現在のソフトウェアコンポーネントパッケージの情報に変更する。同様に、同一の管理ノードが存在するかどうかにかかわりなく、端末は、第1の実施形態と同一のプロセスで、アクセス制御権をDelivered/Pkg2管理ノードおよびそのサブノードに割り当てる。
ステップ1403:端末が、Delivered/Pkg2管理ノードの情報をServerAに報告する。
Delivered/Pkg2管理ノードが生成された後に、端末は、次のプログラムに含まれるように、管理ノードのURIおよびDelivered/Pkg2/NAME情報を、Alertコマンドを介してServerAに報告する。
<Alert>
<CmdID>2</CmdID>
<Data>1226</Data> <!-- Generic Alert -->
<Correlator>abc123</Correlator>
<Item>
<Source><LocURI>./SCOMO/Download/Pkg2/Operations/DownloadInstall
</LocURI></Source>
<Target><LocURI>./SCOMO/Inventory/Delivered/Pkg2</LocURI></Target>
<Meta>
<Type xmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
</Meta>
</Item>
</Alert>
ServerAが、端末によって報告される動作結果ならびに伝えられるURI情報を受信した後に、ServerAは、Deliveredサブツリーに対して直接にInstall動作を開始することができる。これは、再ダウンロードプロセスをなしで済ませ、したがって、ネットワークおよび端末の負荷を減らす。
前述の端末と同様に、端末およびDMサーバを、第2の実施形態に従って提供することができる。端末およびDMサーバは、第2の実施形態で説明した技術的方法を利用し、第2の実施形態のステップを実施することができる。
第3の実施形態では、ServerAが、直接ダウンロードモードを使用する。この実施形態では、ソフトウェアコンポーネントパッケージの名前が、ascendoであり、ソフトウェアコンポーネントパッケージのIDが、PkgID_3である。このソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントは、ascendo_1、ascendo_2、およびascendo_3という名前を付けられ、ComID_1、ComID_2、およびComID_3として識別される。ダウンロードが完了した後に、図17に示されているように、Install実行可能ノードがインストールを実行する。
ステップ1701:ServerAが、ソフトウェアコンポーネントパッケージをDelivered/Pkg3/Dataノードに直接に送達する。
ServerAは、Deliveredサブツリーの下のソフトウェアコンポーネントパッケージに対応するPkg3管理ノードを生成し、図18に示されているように、ソフトウェアコンポーネント名、バージョン、およびパラメータ情報を含む値を管理ノードに割り当てる。ServerAは、アクセス制御権を管理ノードに割り当てる。たとえば、Delivered/Pkg3のアクセス制御権には、Get=*&Add=*&Replace=ServerAがセットされる。Delivered/Pkg3/Operationsの実行可能サブノードのアクセス制御権は、Get=*&Exec=ServerAである。
ステップ1702:ServerAが、Inventory/Delivered/Pkg3/Operations/Install実行可能ノードを介してインストールを実行するように端末に指示する。具体的に言うと、これは、次のプログラムを介して実施することができる。
<Exec>
<CmndID>5</CmdID>
<Correlator>abc123</Correlator>
<Item>
<Target>
<LocURI>./SCOMO/Inventory/Delivered/Pkg3/Operations/Install</LocURI>
</Target>
</Item>
</Exec>
インストール命令を受信した後に、端末は、ServerAの権利を判断する。判断結果が、ServerAがInventory/Delivered/Pkg3/Operations/Installにアクセスし、これを制御する権利を有する(DMサーバがExec権利を有することを意味する)ことを示す場合に、端末は、ソフトウェアコンポーネントパッケージのInstallプログラムに、ソフトウェアコンポーネントパッケージをインストールするように指示し、ExecコマンドのStatus Code 202をServerAに返す。Status Code 202は、端末がデータを成功して受信し、現在そのデータを処理していることを示す。インストールプロセスがパラメータを必要とする場合には、端末は、Inventory/Delivered/Pkg3/InstallParaからパラメータを入手することができる。
ステップ1703:端末が、ソフトウェアコンポーネントパッケージ内のソフトウェアコンポーネントと同一のソフトウェアコンポーネントの管理ノードがDeployedサブツリーの下に存在するかどうかを判断する。
この実施形態は、たとえばascendo_1という名前のソフトウェアコンポーネントを採用する。ascendo_1としてソフトウェアコンポーネント名(Nameノード)を有する管理ノードが、Deployedサブツリーの下にないと仮定する。次に、端末は、ascendo_1の管理ノードおよびその管理ノードのサブノードをDeployedサブツリーの下に生成し、図19に示されているように、値およびアクセス制御権をその管理ノードおよびサブノードに割り当てる。アクセス制御権を割り当てるプロセスは、第1の実施形態と同一とすることもできる。たとえば、端末は、./SCOMO/Inventory/Deployed/Component1ノードのアクセス制御権に、./SCOMO/Inventory/Delivered/Pkg3ノードのアクセス制御権すなわちGet=*&Add=ServerA&Replace=ServerAと同一のアクセス制御権をセットする。./SCOMO/Inventory/Deployed/Component1/Operationsの実行可能サブノードのアクセス制御権には、./SCOMO/Inventory/Delivered/Pkg3/Operations/Installノードのアクセス制御権すなわちGet=*&Exec=ServerAと同一のアクセス制御権がセットされる。
ステップ1704:端末が、インストール結果すなわち、Deployed/Component1のURIならびに名前および/またはIDを含むDeployed/Component1内の情報をServerAに報告する。
インストール応答メッセージを、Generic Alertコマンドを介して報告することができ、ここで、報告されるResult Codeは、Generic AlertのData要素内で伝えられ、インストール命令を実行するURIは、Source要素内で伝えられ、コンポーネントがインストールされた後のDeployedサブツリーパス情報が、Target要素内で伝えられる。ソフトウェアコンポーネントの名前および/またはID情報は、AlertのMetaInfの拡張可能要素EMI内で伝えられる。この動作は、次のプログラムを介して実施される。
<Alert>
<CmdID>6</CmdID>
<Data>1226</Data> <!-- Generic Alert -->
<Correlator>abc123</Correlator>
<Item>
<Source><LocURI>./SCOMO/Inventory/Delivered/Pkg3/Operations/Install
</Source>
<Target><LocURI>./SCOMO/Inventory/Deployed/Component1</LocURI></Target>
<Meta>
<Typexmlns="syncml:metinf">
org.openmobilealliance.softwarecomponent.OperationComplete
</Type>
<Format xmlns="syncml:metinf"> text/plain </Format>
<Mark xmlns="syncml:metinf">critical</Mark>
<EMI xmlns="syncml:metinf" > ComID_1</EMI> <!-- ID of a component under the Deployed subtree -->
</Meta>
<Data>200</Data> <!-- Result Code -->
</Item>
</Alert>
EMIで報告される情報を、名前および/またはIDとすることができる。
前述の端末と同様に、端末およびDMサーバを、第3の実施形態に従って提供することもできる。端末およびDMサーバは、第3の実施形態で説明された技術的方法を利用し、第3の実施形態のステップを実施することができる。
前述の実施形態のステップのすべてまたは一部を、プログラムの命令に従うハードウェアによって実施できることは、当業者には理解できる。プログラムを、コンピュータ可読記憶媒体に格納することができる。プログラムが実行される時に、前述の実施形態のステップが実行され、記憶媒体は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、およびコンパクトディスクなど、プログラムコードを格納できる任意の媒体とすることができる。
前述の第1、第2、および第3の実施形態ならびに前述のシステムおよび端末を用いて、次の利益を得ることができる。
1.パラメータが、ソフトウェアコンポーネントパッケージのインストールでサポートされるので、ユーザは、インストールごとに特定のソフトウェアコンポーネントパッケージを生成する必要なしに、より柔軟なソフトウェアコンポーネントパッケージを生成するのにデバイスを利用することができる。これは、サーバの負荷を減らし、同一のソフトウェアコンポーネントパッケージのパーソナライズされたインストールを可能にし、したがって、よりよいユーザ経験を与える。
2.従来技術で、DMサーバは、それ自体によって生成された管理ノードにアクセス制御権を割り当てるが、端末によって後に生成される管理ノードについて、アクセス制御権をセットすることができず、あるいは、妥当なアクセス制御権をセットすることができない。その結果、セキュリティが弱まる。端末によって生成される管理ノードおよびそのサブノードのアクセス制御権をセットすることによって、指定されたデバイスがデータを管理でき、したがって、信頼性がより高くなる。
3.端末は、ソフトウェアコンポーネントパッケージ名、ソフトウェアコンポーネント名、およびURI情報をDMサーバに報告し、その結果、DMサーバは、ソフトウェアコンポーネントをより正確に認識できるようになり、したがって、DMサーバが後続動作を実行することがより簡単になる。
4.端末が管理ノードを生成する時に、端末は、同一の管理ノードがサブツリーの下に既に存在するかどうかを判断する。これは、端末内のソフトウェアコンポーネントの冗長性を減らし、端末内のソフトウェアコンポーネントの更新およびアップグレードを可能にし、したがって、端末内のソフトウェアコンポーネントが最新バージョンであることを保証する。
5.成功してダウンロードされたがインストールに失敗するソフトウェアコンポーネントパッケージは、そのソフトウェアコンポーネントパッケージを後にもう一度インストールできるようにするために処理される。これは、再インストールのための再ダウンロードという苦労をなしで済ませ、ネットワークおよびサーバへの負荷を減らす。
6.ソフトウェアコンポーネントパッケージに対応する管理ノードが生成される時に、その管理ノードは、ソフトウェアコンポーネントの情報を含み、その結果、より後に、インストールが成功した後にソフトウェアコンポーネントに対応する管理ノードを生成することが便利になる。
本発明を、いくつかの例示的実施形態を介して説明したが、本発明は、そのような実施形態に限定されない。当業者が、本発明の趣旨および範囲から逸脱することなく本発明に対するさまざまな修正形態および変形形態を作ることができることは明白である。本発明は、これらの修正形態および変形形態が、添付の特許請求の範囲またはその同等物によって定義される保護の範囲に含まれるならば、これらの修正形態および変形形態を含むことが意図されている。