OutSystemsでサーバーロジックを作成するときにServer Action/Service Action/Expose REST APIという選択肢がある。
それぞれの特徴と使い所をまとめ。
比較表
Server | Service | REST | |
---|---|---|---|
トランザクション1 | ○ | ☓ | ☓ |
パフォーマンス2 | ○ | △ | △ |
認証の引き継ぎ | ○ | ○ | ☓ |
整合性チェック3 | ○ | ○ | ☓ |
利用箇所の検索4 | ○ | ○ | ☓ |
モジュール更新の独立性5 | ☓ | △ | ○ |
用途6 | ドメイン内から利用 | 同じOutSystems環境の他ドメインから 設計上の理由で依存関係を弱めたいとき |
OutSystems外の環境から 他のOutSystems環境から |
その他のActionの整理
Screen Action
Screen ActionとはScreen(画面)の下に作成するAction。
画面のライフサイクルイベント(Readyなど)やUIイベントハンドラーの役割。
Traditional WebではServer Action、Reactive Web AppやMobileではClient Actionでもある。
Client Action
Reactive Web AppやMobileで作成できるActionの種類。
この形式で作ったロジックは実行時にJavaScriptに変換され、ブラウザ内で実行される。
SOAP
SOAPとしてActionを作成し、公開することもできる。
Expose REST APIと同様の操作方法で作れる。
-
Consumerと同じトランザクションで動作するか? ○:同じトランザクション ↩
-
Action呼び出しのパフォーマンス。Service Action・Expose REST APIはHTTP通信のオーバーヘッドがかかる ↩
-
コンパイル時に、既存Consumerとの整合性チェック(引数の数や型等)を行うか。 ↩
-
Service StudioのFind UsageやService CenterのDependeiciesなどで呼び出し元を発見できるか? ↩
-
Producerの変化がConsumerに与える影響の強さ(Consumerで再Publishや参照更新が必要になる)。☓:全てのPublishがConsumerに影響を与える △:I/Fが変更したときのみConsumerに影響を与える(内部ロジックだけの変更はConsumerの参照更新不要) ↩
-
ドメインの意味についてはOutSystemsのDDD情報まとめ参照 ↩