あなたは文字通り遠隔からですか?異なる可用性特性を持つ異なる環境で稼動する場合と同じですか?ネットワークのオーバーヘッドはありますか?
「はい」と仮定すると、私の最初のステップは、サービスアプローチをとることであり、呼び出し技術を脇に置いておくことです。あなたのサービスの設計と意味を考えてみてください。あなたは、彼らが呼び出すにはコストがかかります。したがって、小さなビジーなインターフェイスは悪い傾向があります。呼び出しの間にサービスシステムが失敗する可能性があることを知っているので、ステートレスサービスを好むかもしれません。あなたは失敗後にリクエストを再試行する必要があるかもしれないので、偶然のサービスデザインを好むかもしれません。
次に、可用性の関係について検討します。リモートシステムなしでクライアントを動作させることができますか。場合によっては、リモートシステムが利用できない場合(例えば、HRシステムにアクセスできない場合は従業員を有効にすることはできません)、他の場合には「ファイアアンドアンドトーク「後の」哲学。要求をキューに入れ、後で応答を処理します。
可用性の低下がある場合は、単純に同期インタフェースを公開することが適しているようです。すべてがJava EEであれば、SLSB EJBでそれを実行できます。私は、私のサービスが有用であれば、Java EE以外のクライアントもそれらを望むかもしれないと一般化する傾向があります。 SOAP(またはREST)は便利な傾向があります。最近、あなたのSLSBにWebサービスインターフェイスを追加することはかなり簡単です。
しかし、私のペット理論は、十分に大きなITシステムであれば、同期通信を必要とするということです。可用性の制約を切り離す必要があります。ですから、私はJMSスタイルの関係を探す傾向があります。サービスの前にあるMDBファサード、つまりSOAP/JMSはそれほど難しいことではありません。このようなアプローチでは、とにかくおそらく潜んでいた障害ケースの設計上の問題が浮き彫りになる傾向があります。JMSは、「私が答えを得られないと仮定します。
これは、クライアントからサーバーへのHTTPを持つシステムでこれを使用します(セキュリティ上の理由から必要です)。サービスコールへのサービス。 – Robin