問題タブ [service-design]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - 大規模な WCF サービスを処理するためのベスト プラクティス
私は WPF で 4 プレーヤーのネットワーク ゲームに取り組んでおり、その過程で WCF を学習しています。これまでのところ、ネットワーク通信を処理するために、Coding4Fun ゲームの YeeTrivia ゲームからのアドバイスに従いました。それはかなりうまくいきます。dualHttpBinding
CallbackContract
ただし、私のサービスは非常に大きくなっています。ゲーム自体を処理するためのメソッド/コールバックだけでなく、チャット システム、ログイン/登録プロセス、マッチメイキング、名簿/プレイヤー情報なども備えています。サーバーとクライアントの両方を維持するのが難しくなっています。単一のインターフェース。たとえば、クライアントでは、コールバックをゲーム ページやロビー ページなどにリダイレクトする必要があり、非常に面倒です。ゲーム ページでのゲーム コールバック、チャット ウィンドウでのチャット コールバックなどを処理できるようにしたいと考えています。
それで、それを処理する最良の方法は何ですか?サービスを複数に分割する、サービスに複数の「エンドポイント」を設定する、または適切な場合にサービスを部分的に実装する他のトリックはありますか?
ありがとう
wcf - Web サービス コントラクトの設計 - 単一の責任
ほとんどの開発者が自分の Web サービスに対するコントラクトをどのように設計しているのか知りたいです。私はサービス アーキテクチャにまったく慣れておらず、特に WCF には慣れていません。
要するに、操作で返されるオブジェクトのタイプを知りたいのですが、サービスの各操作は同じオブジェクトを返しますか?
たとえば、次のことを考えてみましょう: 現在、私が作成するすべてのサービスは、次のような ServiceBase オブジェクトから継承されます。
Response
次のようなものを構成する戻りオブジェクトを表します。
したがって、どの派生サービスも、同じオブジェクトで構成される応答を返します。最初は、各サービスが 1 つのオブジェクトを担当するように強制されるため、 を使用するのは良い設計だと思いました。ほとんどの場合、これでうまくいきましたが、サービスが成長するにつれて、この設計に疑問を抱くようになりました。
これを例に取ります: あなたが書いている音楽サービスがあり、そのサービスの 1 つが「アルバム」です。したがって、基本的な CRUD 操作を作成すると、ほとんどすべてが AlbumDto のコレクションを返します。
アルバムの種類を返す操作を書きたい場合はどうでしょう。(LP、Single、EP など) オブジェクト AlbumTypesDto があります。このオブジェクトのためだけに新しいサービスを作成しますか?それとも、アルバム サービスでさまざまなオブジェクトを返すようにしますか?
いくつかの異なる戻り値の型を持つ複雑なサービスは扱いにくく、設計が貧弱であると想像できますが、1 つまたは 2 つのサービス操作メソッドだけがやり過ぎになる可能性があるため、まったく新しいサービスを作成します。
どう思いますか?
c# - より良い WCF サービスを構築する
WCF サービスを構築していますが、WCF サービスの設計について質問があります。
例えば:
PersonとProductの 2 つのクラスを持つデータ アクセス レイヤーがあるとします。
どちらのクラスにもSelect()メソッドがあります。これらのクラスを WCF で使用するには、以前のプロジェクトで 2 つの方法を使用しました
1) 2 つのサービス クラスPersonServiceとProductServiceを作成します。
この場合、サービス クラスを個別に作成/構成する必要があります。
2) 1 つのサービス クラスを作成し、異なる名前を使用します。
この場合、サービス クラスを 1 つだけ作成/構成する必要があります。ただし、メソッドにはより大きな名前があります (たとえば、 Select( )ではなくPersonSelect( ) ) 。
どちらがより良い方法ですか?なぜ?
ありがとう。
wcf - SOA 設計のための WCF リソース
次の特定のプログラミング タスクに最適なリソースと書籍を探しています。それらを提供していただけますか?
注: この質問は、特定のプログラミング タスクに対処しているため、スタック オーバーフロー フォーラムに適していると思います。
• OOP と SOA の間の処理関係。
• 拡張性のためにエンティティを設計します。サービスのコンシューマーに影響を与えることなく、データ コントラクトを拡張します。
• 標準要素からエンティティを構成します。可能であれば、標準要素を使用して、サービスで使用される複合型を構成します。
• 契約のバージョン管理。
• サービスが繰り返されるメッセージを検出および管理できることを確認します (べき等性)。
c# - サービス外のデータを理解する: SOA
注: サービス外のデータとは、サービスによって返され、クライアントによって消費されるメッセージを意味します。
LastBuyer Service という名前のサービスがあります。これは、bookID をサービスに入力すると、書籍の最後の購入者の名前を返します。同じ書籍 ID に対してサービスを呼び出すと、別の結果が返されます (書籍が新しい購入者によって購入された場合)。したがって、サービスの結果をクライアントにキャッシュすることはできません (特定の BookID について)。
「Data on the Inside vs. Data on the Outside」という記事を読んでいると、「キャッシュしてもいい」「メッセージの ID は同じデータを返すので、メッセージをキャッシュしてもいい」と書かれています。
参照: http://msdn.microsoft.com/en-us/library/ms954587.aspx
私の理解の欠けている点は何ですか?
上記の例でメッセージは不変ですか?
上記の例で、バージョンに依存する識別子とバージョンに依存しない識別子は何ですか?
ここでメッセージのバージョン管理はどのように行われますか?
SOA の概念とパターンを例を挙げて明確に説明している WCF の本はどれですか?
読む
- サービス設計の原則: サービス パターンとアンチパターン
rest - ユーザーとセッションの REST API URI 設計?
私は REST 設計に慣れていないので、ここでいくつかの指針が欲しいです。
これが私がこれまでに持っているものです:
ここでセッション/ログイン/アウトについて疑問に思っています。私はここで正しいと考えていますか、それとも他の方法でREST風に設計する必要がありますか?
また、ユーザーの登録は次のようになります。
新しいセッションも開始しても?