「Worklight: リソース・ハンドラー」パターン

このパターンを使用して、Worklight API を使用するモバイル・アプリケーションにサービスを提供します。サービスは、Worklight アダプター・プロシージャーとしてモバイル・アプリケーションに対して公開されます。このプロシージャーはアプリケーション内で JavaScript から呼び出されます。

このパターンをカスタマイズするには、WebSphere Message Broker でこれらのプロシージャーごとにサブフローとしてハンドラーを実装します。このパターンは、セキュリティー・ポリシーの施行とグローバル・キャッシュを提供します。

パターンの動作を示す図。

ソリューション

サービスは、リソースの CRUD (作成、読み取り、更新、削除) アクションを持つリソース指向モデルに従います。

各アダプターは、1 つのリソースに最大 4 つのプロシージャーを提供します (各 CRUD アクションにつき 1 つのプロシージャー)。このパターンをカスタマイズするには、プロシージャーごとにプロシージャー・ハンドラーを実装します。プロシージャー・ハンドラーはサブフローとして実装されます。

このパターンは、Worklight Server 上で実行するアダプターと、そのアダプターからの着信要求を処理するメッセージ・フローを生成します。この要求ハンドラーのメッセージ・フローは、モバイル・アプリケーションによって呼び出されたアダプター・プロシージャーに応じて、関係するプロシージャー・ハンドラー・サブフローに要求を経路指定します。

Worklight Server 上で実行されるアダプターと、Message Broker 内で実行される要求ハンドラーのメッセージ・フローとの間に HTTP 接続が確立されます。この接続で、Worklight は HTTP クライアントになり、Message Broker は HTTP サーバーになります。

モバイル・アプリケーションは、Worklight API 内の JavaScript 関数に JavaScript オブジェクトを渡して、アダプター・プロシージャーを呼び出します。サブフローに伝搬されるメッセージ・ツリーは、JSON ドメイン形式で、モバイル・アプリケーションによって提供される JavaScript オブジェクトからのデータが含まれます。

正しいプロシージャー・ハンドラー・サブフローを呼び出す前に、要求がセキュリティー・ポリシーに照らして検査されます。セキュリティーを検査し終えると、プロシージャー・ハンドラー・サブフロー内で処理を続行できます。読み取り操作の場合は、メモリー内のキャッシュが検査され、それ以上の処理なしで利用できるリソース・インスタンスが入っていないか調べられます。

セキュリティー

セキュリティーはオプションです。セキュリティーが有効になっている場合は、モバイル・アプリケーションはアダプター・プロシージャーにセキュリティー・トークンを提供しなければなりません。このパターンは、セキュリティー・ポリシー施行点 (PEP) を提供し、PEP はセキュリティー・ポリシー決定点 (PDP) としての LDAP サーバーに対してコールアウトします。

このパターンによって提供されるセキュリティーには、認証と許可という 2 つの局面があります。

認証は、要求が正当なユーザーからのものであることを確認するために使用します。これは、モバイル・アプリケーションによって提供されるトークンが有効かどうか検証する方法で行われます。トークンは、ユーザー ID、コロン文字、およびパスワードの組み合わせです。モバイル・アプリケーションによって、これらの値は連結され、base64 エンコードされます。パターンは、このストリングをデコードし、ユーザー ID とパスワードを認証のために LDAP サーバーに渡します。この妥当性検査は、メッセージ・フロー内の他の処理が開始される前に実行されます。

許可検査は、ユーザー ID とパスワードが認証された後に実行されます。インバウンド要求メッセージが構文解析され、リソースに対して要求されているアクション (CRUD) が判別されます。

要求されているアクションを呼び出す許可が認証ユーザーに与えられていることを、許可検査で確認します。このパターンは、以下の 2 つの許可グループをサポートしています。

キャッシュ

キャッシュはオプションです。キャッシュを使用可能にすると、Message Broker 内に組み込まれている WebSphere Extreme Scale (WXS) テクノロジーを使用してキャッシュが提供されます。

読み取りプロシージャー・ハンドラーが呼び出されるたびに、戻り値がキャッシュに追加されます。リソースの同一インスタンスがこのアダプターによって更新されたり削除されたりするたびに、そのインスタンスはキャッシュから削除されます。

デプロイメントのオプションについて、および水平スケーリングのためにネットワーク内の実行グループとブローカーの間でキャッシュを共有する方法について詳しくは、パターンを生成した後に完了するタスクを参照してください。

デプロイメント

パターンは、Message Broker ランタイムにデプロイする必要のある Message Broker アプリケーションを生成します。モバイル・アプリケーションと Message Broker で稼働している Web サービスとの間のインターフェースを提供するには、Worklight アダプターを Worklight Server にデプロイしなければなりません。

パターンの使用に関する制約
Worklight アダプター
パターンを適用する前に完了するタスク
パターンのパラメーター
パターンを生成した後に完了するタスク