2012-04-12 147 views
4

我想了解哪种方法最适合管理下面的场景。服务架构 - webservies | soa

说例如有25个应用程序主要在java中,并且基于web部署跨不同平台jboss,websphere & tomcat。每个应用程序公开3-5个服务,并且也消耗来自其他应用程序的服务。它们中的大多数是同步的并且在需要的基础上被触发。下面的一些使用案例,

  1. 当患者被录取时,这将发送消息给有兴趣入场细节(同步)的4 -5系统。
  2. 计费系统发送详细信息到另一个系统来计算折扣(同步)
  3. 通过传递该ID来获取患者详细信息。 (同步)

所以,如果你试图在picutre中表示整个图表,如果将像每个系统之间的硬编码静态线那么多。

的问题

  1. 不常见的方式找到每个系统或网络服务的健康状况,直到用户抱怨一些事情不工作。

  2. 太多的Web服务和端点来跟踪。

  3. 由于差异应用程序服务器和容器,跨差异标准JAX-wS,Jax-RS实施。

  4. 一些消息是相同的细节略有不同。因此可重用性降低,并最终为每个自定义需求提供新服务。

什么样的解决方案更适合解决上述问题?

+0

+1好问题 – 2012-04-12 09:51:17

回答

1

这是大型企业的一个难题和常见问题。您可以看到的是将enterprise service bus集成到您的公司以促进SOA。然后,您可以为您的生态系统中的每个系统实施适配器。适配器接口将被严格控制,记录和标准化。 虽然这样做有相当大的成本。

关于检查系统健康状况。您可以使用Nagios这样的平台来查看。您需要确定一些无害的Web服务(例如基本阅读),以确定给定系统是否“启动”。 Nagios可以定期打电话给他。

+0

谢谢尼克瑞恩你的时间。是的ESB是我们正在密切关注的一个选项。但是现在我看到很多有关SOA已经死亡的文章,这让我对此持怀疑态度。我正在看的其他选项是AMQP,例如Rabbit MQ,也计划迁移一些容易出错的Web服务来规划REST/JSON。 – cresc 2012-04-13 01:59:20

0

您需要一个ServiceBus,它不一定是一个完整的ESB,但您确实需要一个集成和中介点,以确保您管理不同的端点类型和不同的协议,而无需使用1-1连接。

您可以查看Fuse Mediation Hub(根据apache camel)。将来自不同服务的集成逻辑再次外化,将为您提供更多灵活性。例如,它可以让你将不同的服务迁移到你提到的REST/JSON,而不需要改变依赖于正在发展的服务的每个服务(在整个转换过程中保持整个工作)。

关于监控 - 您可能要考虑查看splunk它可以连接到很多来源(应用程序服务器的日志,JMX,SNMP)并关联事件。他们有一个免费版本(每天最多500Mb的数据)