Java 服务体系结构-Web服务| soa

Java 服务体系结构-Web服务| soa,java,web-services,architecture,soa,Java,Web Services,Architecture,Soa,我想了解哪种方法最适合管理以下场景 比如说,有25个应用程序主要使用java,它们基于web部署在不同的平台jboss、websphere和tomcat上。每个应用程序公开3-5个服务,还使用来自其他应用程序的服务。其中大多数是同步的,并根据需要触发。下面的一些用例 当患者入院时,这会向4-5个对入院细节感兴趣的系统发送消息(同步) 计费系统将详细信息发送到另一个系统以计算折扣(同步) 通过传递id获取患者详细信息。(同步) 因此,如果你试图用一个picutre来表示整个图,那么它就像每个系统之

我想了解哪种方法最适合管理以下场景

比如说,有25个应用程序主要使用java,它们基于web部署在不同的平台jboss、websphere和tomcat上。每个应用程序公开3-5个服务,还使用来自其他应用程序的服务。其中大多数是同步的,并根据需要触发。下面的一些用例

  • 当患者入院时,这会向4-5个对入院细节感兴趣的系统发送消息(同步)
  • 计费系统将详细信息发送到另一个系统以计算折扣(同步)
  • 通过传递id获取患者详细信息。(同步)
  • 因此,如果你试图用一个picutre来表示整个图,那么它就像每个系统之间的许多硬编码静态线一样

    问题

  • 在用户抱怨某些东西不起作用之前,没有通用的方法可以找到每个系统或web服务的运行状况

  • 太多的web服务和端点无法跟踪

  • 由于使用了不同的应用服务器和容器,所以可以跨不同的标准JAX-wS、JAX-RS实现

  • 有些消息是相同的,但细节略有不同。因此,可重用性降低,最终为每个定制需求提供新的服务


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

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


    关于检查系统运行状况。您可以考虑使用一个平台,例如。您需要识别一些无害的web服务(例如基本的读取),这些服务可以用来确定给定系统是否处于“启动”状态。Nagios可以定期调用它。

    您需要一个ServiceBus,它不一定是一个成熟的ESB,但您确实需要一个集成和中介点,以确保在不依赖1-1连接的情况下管理不同的端点类型和不同的协议

    你可以看(基于)。同样,从您拥有的不同服务中具体化集成逻辑将给您带来更大的灵活性。例如,它将允许您将不同的服务迁移到您提到的REST/JSON,而无需更改依赖于正在发展的服务的每个服务(在整个转换过程中保持整个工作)


    关于监视——您可能需要考虑查看它可以连接到许多源(应用服务器的日志、JMX、SNMP)以及相关事件。他们有一个免费版本(每天最多500 MB的数据)

    感谢Nick Ryan抽出时间。是的,ESB是我们正在密切关注的一个选项。但是现在我看到很多文章说SOA已经死了等等,这让我对它产生了怀疑。我正在考虑的另一个选项是AMQP,比如Rabbit MQ,也计划将一些容易出错的web服务迁移到plan REST/JSON中。