0

私の日常の仕事では、Web サービス (および最近では WCF) を介して負荷分散されたアプリ サーバーと通信する、負荷分散された Web サーバーがあります。常に、新しい Web サイトやサービスを追加したり、既存のサービスを利用したりできる 4 ~ 6 の異なるチームがあります。おそらく、約 20 ~ 30 の異なる Web アプリケーションとそれに対応するサービスがあります。

残念ながら、競合する優先順位、組織構造、プロジェクトのタイムライン、財務バケットなどのために、これを一元的に制御できないことを考えると、かなり混乱しています. 再利用されるさまざまなサービスがありますが、フロントエンドに固有のものはたくさんあります。

理想的には、この状況をより適切に制御できるようにすることであり、それを制御しようとしていますが、それには時間がかかります。私たちがやりたいことの 1 つは、Web サイトとアプリ サーバーの間のすべての相互関係についてもっと調べることです。

Reflector を使用してアセンブリ間の依存関係を見つけましたが、サービス間のトラフィック パターンを確認できるようにしたいと考えています。

Web サービスの関係をマッピングするためのオプションは何ですか? ほとんどの場合、主に内部サービス (Web からアプリ、アプリからアプリ、バッチからアプリなど) について話しています。頭のてっぺんから、それにアプローチする2つの方法を考えることができます。

  • Web 参照のアセンブリを分析します。ここでの欠点は、すべてが Web 参照であるとは限らず、WCF 接続がどのようにリストされているかがわからないことです。ただし、これは少なくとも接続の 80% を見つけるための出発点となります。その分析を行うことができるツールを知っている人はいますか? 私が言ったように、アセンブリ参照に Reflector を使用しましたが、Web 参照には何も見つかりません。
  • おそらくIISを利用して、出入りするトラフィックを受動的に監視し、どういうわけか、何がどこから呼び出されているかを突き止めます。役立つエンタープライズ ツールを検討していますが、実装されるまでにはしばらく時間がかかります (そして多くの費用がかかります)。しかし、迅速かつ安価に役立つものはありますか? 特に 1 つのツール (AmberPoint) は、サーバー上の IIS を利用して、インバウンドおよびアウトバウンドのトラフィックを監視し、少し特別なソースを追加して、トラフィックのマップの作成を開始できます。とても素敵ですが、バンドルが必要です。

そもそもどうやってこの混乱に陥ったのですか?私たちがそれを制御してそこから抜け出すのを手伝おうとしているだけで、私を打ちのめします。

ありがとう、マット

4

2 に答える 2

2

最も簡単な方法はログを確認することですが、リファラーが含まれていない場合は、Web からアプリ サーバーに何が送信されているかを監視することもできます。Wireshark や Microsoft Network Monitor などのツールを使用して、このトラフィックを確認できます。

もう1つの「解決策」と私がこれを大まかに使用するのは、特定のWebサーバーをアプリサーバーにバインドし、バンドルを実行して、アプリサーバーで何がヒットしているかを確認することです. サイトのユーザーへの影響を学習するために、おそらくテスト環境でこれを行うことができます。

于 2008-09-04T20:05:46.107 に答える
0

サービス レジストリ (UDDI??) が必要です... これらのサービスとそのコンシューマをカタログ化する手段があれば、この依存関係の検出作業がはるかに簡単になります。しかし、それは簡単な解決策ではありません。カタログを作成するには、時間と書類が必要です。

最も簡単な解決策は、IIS ログにクエリを実行し、独自のサーバーから発信されたソース URL を見つけることだと思います。少なくとも、消費者がどのサーバーから来ているかを追跡することができます.

また、何らかの認証メカニズムがすでに整っている場合は、ログインに基づいて特定のサービスを使用しているユーザーを追跡できます。

あなたは AmberPoint について正しいです。サービス トラフィックをカタログ化し、サービスに何が起こっているかを示すレポートを提供するツールは他にもあります。Systinet、SOA Software、Actional にも Amberpoint に似た製品がありますが、Amberpoint にはフリーウェア バージョンがあると思います。

于 2008-09-05T20:59:34.720 に答える