アプリケーションを呼び出さずにアプリケーションサービス機能経由で実行できる操作や機能を、テクニカルサービスから提供したい場合があります。SaaS環境では、アプリケーションがローカルにインストールされているわけではなく、サービスとして提供されています。このため、たとえばシステムのバックアップやシャットダウンなどの管理作業に必要なシステムのリソースに、ユーザーはアクセスできません。Web経由でアクセスするための特別なインターフェースを提供しなくとも、テクニカルサービスに統合するだけでこれらの操作を提供できます。
テクニカルサービスから提供する機能の情報は、XMLによる定義に追加する必要があります。詳細は“付録B テクニカルサービス定義のXMLファイル要素”を参照してください。
テクニカルサービスの操作の統合には、以下の作業が必要です。
アプリケーションサービス機能の提供するオペレーションサービスのインターフェースを使用して、Webサービス定義のexecuteServiceOperationメソッドを実装します。以下の情報がパラメーターとして提供されます。
ユーザーID
このIDはインスタンスのコンテキストで一意です。これを使って、テクニカルサービスは組み込みのセキュリティチェックを実行することができます。
インスタンスID
このIDは操作の対象となるテクニカルサービスのインスタンスを一意に指定します。
トランザクションID
このIDには常に0が設定されます。アプリケーションサービス機能の内部トランザクションの参照として提供されます。
操作ID
このIDは実行する操作を指定します。このIDを指定して操作を呼び出すことで、操作は間接的に指定されます。
実装したオペレーションサービスのWSDLファイルは、URLを指定することでアクセスできるようにしておく必要があります。
テクニカルサービスのXML定義ファイルを編集し、操作を追加します。詳細は“付録B テクニカルサービス定義のXMLファイル要素”を参照してください。サービスの操作を実装する際は、以下に留意してください。
戻り値の型はSTRINGで、型は変更できません。
パラメーターは追加できません。
アプリケーションサービス機能はアクセス制御を提供しません。サービスを利用できる全ユーザーが、提供した操作を実行できます。
操作の実行は常に同期モードになります。
オペレーションサービスで実装が必要なオペレーションは以下の通りです。
オペレーション | 説明 |
---|---|
executeServiceOperation | ユーザーがサービスの操作を行った場合に呼び出されます。操作を提供する場合は、実装は必須です。 アプリケーションでは、渡されたパラメーターに応じて何らかの操作を行う処理を実装します。 |
JAX-WSフレームワークを使用した場合のオペレーションサービスのインターフェースのコード例を以下に示します。
@WebService(serviceName = "ProvisioningService", targetNamespace = "http://bss.fujitsu.com/xsd/v1.1", endpointInterface = "com.fujitsu.bss.operation.intf.OperationService") public class MyOperationServiceImpl implements OperationService { public String executeServiceOperation( String userId, String instanceId, String transactionId, String operationId, java.util.List<OperationParameter> parameters) { //渡されたパラメーターに応じて何らかの操作を行う処理を実装します。 ... } }
JAX-WSフレームワークを使用する場合、WebサービスのWSDLファイルは、公開したWebサービスのURLにクエリ"?wsdl"を付加したURLで自動的に公開されます。テクニカルサービス定義には、このURLを指定してください。
JAX-WSフレームワーク以外を使用する場合、OperationService.wsdlドキュメントに基づいてWebサービスを作成してください。使用するプラットフォームとWebサービス・フレームワークがWSDLを自動的に公開する機能を持っていない場合には、OperationService.wsdlファイルを公開してください。この場合、ファイル中の<soap:address location="REPLACE_WITH_ACTUAL_URL"/>の記述は、実際にWebサービスを公開しているURLに置き換える必要があります。