0

非同期メソッドを介してサーバー上でいくつかの長い操作をトリガーするWebサービスがあります。各操作には3つの方法があります。

  • そのうちの1つが操作を開始し、すぐにチケット番号を返します。
  • それらの1つは、クライアントから継続的に呼び出されます。チケット番号を受け取り、操作が完了したかどうかを示すブール値を返します。
  • 最後の1つは、操作が終了した後にのみ呼び出されます。チケット番号を受け取り、操作の結果を返します。

このメソッドを呼び出す方法がわかりません。メソッドを次のように呼び出すことを考えます。

  • OperationName_Start
  • OperationName_IsReady
  • OperationName_GetResult

しかし、私は車輪の再発明をしているのではないかと心配しています。この使用パターンのよく知られた命名規則はありますか?

4

2 に答える 2

1

最初に答えを得ることができなかったのは残念です。このSOA Principles Linkを読んで、プリンシパルと Web サービスの命名の重要性をよりよく理解することを強くお勧めします。

消費者の観点から名前を付けることを忘れず、消費性と再利用性を最大化することが重要です。また、サービスを呼び出すときは、オブジェクトに対して実行およびアクションを実行していることを覚えておくと便利です。つまり、動詞名詞が必要です。また、Web サービスはオブジェクト指向言語の関数と非常によく似ているため、Web サービスの関数のコードがどのようになるかを考えると役に立ちます。

次のようなシナリオを検討すると便利です。

  • Web サービスが呼び出しているシステムを変更するとどうなりますか?
  • このサービスを呼び出すことができる別のシナリオはありますか?
  • サービスはどの程度の粒度にする必要がありますか? これらの決定はパフォーマンスにどのような影響を与えますか?

達成しようとしていることのビジネス コンテキストを知らなくても、送信と電子決済の基本的な例を想定します。

このシナリオでは、次のことが考えられます。

  • ElectronicPayment_SendPayment (注: 「送信」の使用は、技術的なコンテキストではなく、ビジネス コンテキストを維持します。送信は、電子メール、郵便、Web サービスを介して行うことができます。「開始」の例から、何を開始しますか。ここでは、サービスの意図は次のとおりです。見かけ上)
  • ElectronicPayment_CheckStatus (注: これは消費者の観点からのものです。処理ステータスの確認は一般的なサービスである可能性が高く、CheckProcessingStatus (TicketNumber tN)
  • ElectronicPayment_RetrieveReciept (注: セマンティック リンクを使用した要求/応答パターン。受信と支払いのビジネス コンテキストが維持されます)

命名は非常に文脈に依存しており、上記は完璧ではありませんが、うまくいけば、これがあなた自身や他の人がこれに出くわすのに役立ちます.

于 2013-08-26T06:28:51.990 に答える