2011-06-20 8 views
3

私は、ASP.NET MVCアプリケーションのリポジトリとして機能するServiceLayerというクラスライブラリを持っています。このサービスレイヤには、ProfileServiceという名前のWCFサービスへの参照が含まれています。WCF SOA命名規則

私は、モバイルデバイスが自分のアプリケーションと通信できるようにするため、ProfileServiceという別のWCFサービスを作成しました。このサービスはServiceLayerクラスライブラリへの参照を持ち、Profileオペレーションを呼び出すための呼び出しを行います。

これで2つのProfileServicesがあるので、これはかなり混乱しています。最初は自分のデータベースなどと通信し、自分自身を自分のサービス層に公開します。 2つ目は私のサービス層と通信し、モバイルデバイスに自分自身を公開します。

どのタイプの混乱を避けるために、SOA環境でサービスに名前を付ける最善の方法はありますか?特に型間でマッピングするときに便利です。

また、システムのユーザーにAPIとして機能する別のサービスを作成することもできます。このサービスの名前は何ですか?私は各ProfileServiceが独自の名前空間にあることを知っていますが、これはAutoMapperSettingsを作成したり手動でマッピングする際の読みやすさを助けません。

だから誰でもこの環境でサービスに名前を付ける良い方法を知っていれば大いに感謝するだろう。

答えて

2

あなたはあなたがあなたの本当のサービスに特化したばかりのインターフェースであるファサード、で終わるだろうService Facade

を探しています。必要に応じてさまざまなサービスを定義します(モバイル、ユーザー、データベース)

+0

ありがとうございましたNix、それは私のサービス層がやっていることです。これは、アプリケーションのファサードとして機能します。しかし、それはサービスのすべてのDataMembersのProfileServiceを参照するので、UserRequest/UserResponseオブジェクトは私のMobile Device ProfileServiceに表示されます。ここで私はRequest/Responseデザインも使用しています。 UserRequest/UserResponseオブジェクトを持っています。 – Cragly

+0

サービス層がProfileServiceにアクセスしていますか?それは正しいように見えませんか?それは反対でなければなりませんか?真のファサードは共通の言葉で話すべきですか?したがって、すべてのファサードは既存のサービスレイヤーを活用し、実際にはサービスレイヤーからクライアントへの変換として機能します。 – Nix

+0

私のサービス層は、net.tcpを使って内部的にWcfを呼び出す。 DBが別のサーバ上にあるので、これは柔軟にする必要があります。他のすべてがサービスレイヤ(またはIoCを使用して実行時にその表現を参照する)を参照します。私のモバイルデバイスサービスは、そのサービス層を利用してシステムへのコールを利用します。 – Cragly