2008-09-04 78 views
0

在我的日常工作中,我们负载均衡的Web服务器,通过Web服务(最近的WCF)与负载均衡的应用程序服务器交谈。在任何特定时间,我们有4-6个不同的团队可以添加新的网站或服务或使用现有服务。我们可能有大约20-30个不同的Web应用程序和相应的服务。识别ASP.NET Web服务引用

不幸的是,由于竞争优先级,组织结构,项目时间表,金融桶等原因,我们没有对此进行集中控制,这是相当混乱的。我们有多种可重用的服务,但有一些特定于前端的服务。

理想情况下,我们可以更好地控制这种情况,并且我们试图控制它,但这需要一段时间。我们想要做的一件事是更多地了解网站和应用程序服务器之间的所有相互关系。

我已经使用Reflector来查找程序集之间的依赖关系,但希望能够查看服务之间的通信模式。

尝试绘制Web服务关系的选项有哪些?大多数情况下,我们主要讨论内部服务(网络到应用程序,应用程序到应用程序,批次到应用程序等)。关于我的头顶,我可以想到两种方法来处理它:

  • 分析任何Web引用的程序集。这里的缺点是,并非所有东西都是Web引用,我不确定WCF连接是如何列出的。但是,这至少是寻找80%连接的开始。有谁知道任何可以做分析的工具吗?就像我说过的,我已经使用Reflector作为程序集引用,但无法找到任何Web引用。
  • 可能进入IIS并被动监控进出的流量,并以某种方式找出正在调用的内容以及从哪里来。我们正在研究那些可能有所帮助的企业工具,但在实施它们之前还需要一段时间(并且成本很高)。但是有什么可以帮助快速而便宜的?特别是一种工具(AmberPoint)可以利用服务器上的IIS并监控入站和出站流量,添加一点特殊酱油并开始构建流量图。非常好,但花费一大笔钱。

我知道,我知道,你到底是如何陷入混乱的呢?打败我,试图帮助我们控制它并摆脱它。

谢谢, 马特

回答

0

您需要一个服务注册表(UDDI ??)...如果您有一种方法来对这些服务及其使用者进行编目,那么它将使依赖发现的这项工作变得更容易。但这不是一个简单的解决方案。需要时间和文档才能获得目录。

我认为最快的解决方案是查询您的IIS日志并找到源自您自己的服务器的源URL。您至少能够追踪您的消费者来自哪些服务器。另外,如果你已经有了某种认证机制,你可以跟踪谁正在使用基于登录的特定服务。

你是对的AmberPoint。还有其他工具可以对服务流量进行分类并提供报告,显示您的服务正在发生什么。 Systinet,SOA Software和Actional也有类似于Amberpoint的产品,但我相信Amberpoint拥有免费软件版本。

2

最简单的方法就是通过日志来看看,但如果不包括推荐人比你还可能要监视的是从你的网络走出去应用服务器。您可以使用Wireshark或Microsoft Network Monitor等工具查看此流量。

另一个“解决方案”,我松散地使用它是将特定的Web服务器绑定到应用服务器,然后运行一个包并查看它在应用服务器上的内容。您可能可以在测试环境中执行此操作,以便对网站用户产生影响。