ページの先頭行へ戻る
SystemwalkerService Catalog Manager V14g アプリケーションサービス機能アプリケーション開発ガイド
Systemwalker

3.1.3 実装の詳細

プロビジョニングサービスで実装が必要なオペレーションは以下の通りです。

オペレーション

説明

createInstance

同期モードでプロビジョニングを実施する場合に、カスタマーが利用申請を行うごとに呼び出されます。同期モードでプロビジョニングを実施する場合には、実装が必須です。

アプリケーションでは、たとえば、インスタンスごとに管理が必要なデータの作成を行う処理を実装します。

asyncCreateInstance

非同期モードでプロビジョニングを実施する場合に、カスタマーが利用申請を行うごとに呼び出されます。非同期モードでプロビジョニングを実施する場合には、実装が必須です。

アプリケーションでは、たとえば、インスタンスごとに管理が必要な資源の作成を行う処理を実装します。

deactivateInstance

カスタマーのサービスの利用が、一時的に許可されない状態になった場合に呼び出されます。必要に応じて実装してください。

アプリケーションでは、たとえば、アクセスを一時的に不許可にしたり、制限したりする処理を実装します。

activateInstance

カスタマーのサービスの利用が、一時的に許可されない状態から通常の状態に復帰した場合に呼び出されます。必要に応じて実装してください。

アプリケーションでは、たとえば、アクセスを通常の状態に戻す処理を実装します。

deleteInstance

カスタマーがサービスの利用申請を解約した場合に呼び出されます。実装は必須です。

アプリケーションでは、たとえば、インスタンスごとに割り当てられている資源の解放を行う処理を実装します。

createUsers

サービスに新しくユーザーが割り当てられた場合に呼び出されます。アクセス種別が、ログインアクセスまたはプラットフォームの場合は、実装が必須です。他のアクセス種別の場合は、呼び出されません。

アプリケーションでは、たとえば、インスタンス内にユーザーアカウントを作成する処理を実装します。

updateUsers

サービスに割り当てられたユーザーについて、E情報が更新された場合に呼び出されます。アクセス種別が、ログインアクセスまたはプラットフォームの場合、必要に応じて実装します。他のアクセス種別の場合は、呼び出されません。

アプリケーションでは、たとえば、対応するユーザーアカウントの情報を更新する処理を実装します。

deleteUsers

ユーザーがサービスへの割り当てを解除された場合に呼び出されます。アクセス種別が、ログインアクセスまたはプラットフォームの場合は、実装が必須です。他のアクセス種別の場合は、呼び出されません。

アプリケーションでは、たとえば、対応するユーザーアカウントをインスタンスから削除する処理を実装します。

modifyParameterSet

アプリケーションのパラメーターが変更された場合に呼び出されます。アプリケーションが変更可能なパラメーターを提供している場合は、実装が必須です。

アプリケーションでは、たとえば、パラメーターに応じて機能を有効にしたり無効にしたりする処理を実装します。

Echo

アプリケーションの動作状況の確認が必要な場合に呼び出されます。実装は必須です。

非同期モードでプロビジョニングを行う場合、asyncCreateInstanceに対する処理結果は、アプリケーションサービス機能が提供するパブリックWeb APIであるサブスクリプションサービス(SubscriptionServcie)を使用して通知します。使用するサブスクリプションサービスのオペレーションは以下の通りです。

オペレーション

説明

completeAsyncSubscription

asyncCreateInstanceに対する処理が完了した(成功した)ことをアプリケーションサービス機能に通知します。

abortAsyncSubscrition

asyncCreateInstanceに対する処理が失敗したことをアプリケーションサービス機能に通知します。

各オペレーションの詳細は、インテグレーションパックに含まれるJava APIドキュメントを参照してください。インテグレーションパックの詳細は、“付録A インテグレーションパック”を参照してください。


JAX-WSフレームワークを使用した場合のプロビジョニングサービスのインターフェースのコード例を以下に示します。

@WebService(serviceName = "ProvisioningService",
             targetNamespace = "http://bss.fujitsu.com/xsd/v1.1",
             endpointInterface = "com.fujitsu.bss.provisioning.intf.ProvisioningService")
public class MyProvisioningServiceImpl implements ProvisioningService {
    public InstanceResult createInstance(InstanceRequest request) {
        // たとえば、インスタンスごとに管理が必要なデータの作成を行う処理を実装します。
        ...
    }
    public BaseResult asyncCreateInstance(InstanceRequest request) {
        // たとえば、インスタンスごとに管理が必要な資源の作成を行う処理を実装します。
        ...
    }
    public BaseResult deactivateInstance(String instanceId) {
        // たとえば、アクセスを一時的に不許可にしたり、制限したりする処理を実装します。
        ...
    }
    public BaseResult activateInstance(String instanceId) {
        // たとえば、アクセスを通常の状態に戻す処理を実装します。
        ...
    }
    public BaseResult deleteInstance(String instanceId) {
        // たとえば、インスタンスごとに割り当てられている資源の解放を行う処理を実装します。
        ...
    }
    public UserResult createUsers(String instanceId, List<User> users) {
        // たとえば、インスタンス内にユーザーアカウントを作成する処理を実装します。
        ...
    }
    public BaseResult deleteUsers(String instanceId, List<User> users) {
        // たとえば、対応するユーザーアカウントをインスタンスから削除する処理を実装します。
        ...
    }
    public BaseResult modifyParameterSet(String instanceId, List<ServiceParameter> parameterValues) {
        // たとえば、パラメーターに応じて機能を有効にしたり無効にしたりする処理を実装します。
        ...
    }
    public BaseResult updateUsers(String instanceId, List<User> users) {
        // たとえば、対応するユーザーアカウントの情報を更新する処理を実装します。
        ...
    }
    public String echo(String arg) {
        return arg;
    }
}

JAX-WSフレームワークを使用した場合の、サブスクリプションサービスの呼び出しのコード例を以下に示します。

URL wsdlLocation = ...
javax.xml.namespace.QName serviceName = new QName("http://bss.fujitsu.com/xsd/v1.1", "SubscriptionService");
javax.xml.ws.Service service = Service.create(wsdlLocation, serviceName);
SubscriptionService subscriptionService = service.getPort(SubscriptionService.class);

java.util.Map<String, Object> requestContext = ((BindingProvider)subscriptionService).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, username);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);

subscriptionService.completeAsyncSubscription(subscriptionId, organizationId, instance)