Web services a";facade webservice“是什么;?

Web services a";facade webservice“是什么;?,web-services,monitoring,jmx,facade,Web Services,Monitoring,Jmx,Facade,我正在开发一个“FacadeWebService”,我需要重新思考其中的一部分 上下文-我的Web服务(我们称之为“FacadeWebservice”)是一种内部Web服务,其开发目的是隐藏我的系统中其他Web服务的复杂性: 我的FacadeWebservice调用ExternalWebService,ExternalWebService B,很快需要调用ExternalWebService externalwebserviceca、externalwebservicecb和externalw

我正在开发一个“FacadeWebService”,我需要重新思考其中的一部分

上下文-我的Web服务(我们称之为“FacadeWebservice”)是一种内部Web服务,其开发目的是隐藏我的系统中其他Web服务的复杂性:

  • 我的FacadeWebservice调用ExternalWebServiceExternalWebService B,很快需要调用ExternalWebService
  • externalwebservicecaexternalwebservicecbexternalwebservicece是外部web服务;它们可能会发生变化和停机
复杂性越来越高,我需要重新思考监控FacadeWebservice和外部WebService的方式。我需要:

  • 我的应用程序状态的完整视图(呼叫数、发送的错误代码)
  • 了解外部Web服务的情况(外部Web服务宕机、我的Web服务收到的响应代码——例如,其中一个经常出现“技术错误/只读”一段时间)
  • 基本上,是一个显示总体状态的简单视图/工具
  • 服务可用性几乎已经涵盖在内(所以我不需要像Nagios这样的应用程序),我想知道应用程序级别上发生了什么
我在考虑在FacadeWebservice中使用它——这可以为我提供一些有用的图表和统计数据

这是去的路吗?或者一个好的日志策略就足以完成这项任务(即使外部更改是我问题的一大部分)


关于这个主题有什么建议或经验吗?

JMX的优点是您可以运行命令和查询复杂数据

缺点是标准控制台(您可以使用Java版本)非常有限。它可以做任何事情,但没有什么真正好

我的解决方案是创建一个简单的HTML页面来显示这些数据。它有以下优点:

  • 我可以很容易地格式化数据,我想看到的方式对我最有用

  • 我可以使用任何网络浏览器查看(在家、网吧、手机)

  • 主要缺点是显示复杂数据(如图形和趋势)并不容易

    [EDIT]也就是说,JMX支持显示图表和趋势,但它没有内存。因此,您可以了解自启动JMX控制台以来发生的事情。如果您需要能够回顾过去,那么必须始终在某处运行JMX控制台


    在这种情况下,将图形呈现模块添加到“简单HTML页面”可能更简单,您可以在其中绘制所需内容。

    这是一个相当复杂的要求,但您可以尝试JavaMelody

    • “应用程序状态(呼叫数、发送的错误代码)”:是,通过http呼叫数和http错误
    • “外部Web服务”统计:是的,如果您使用EJB3或Spring,可以通过拦截器使用JavaMelody完成
    • JavaMelody在应用程序级别进行监控,它有“图表和统计数据”:参见屏幕截图

    我不知道这是否是一个选项,但看起来您需要ESB组件提供的一些功能:

    • web服务的聚合、组合和编排
    • 监控(呼叫数、代理web服务的运行状况等)
    • 管理控制台
    • 等等
    也许您应该查看类似ServiceMix的东西,它可以通过JMX进行监控(请参阅):


    (来源:)


    或其他商业工具(,ALSBOracle Service Bus…。

    感谢您的支持(向上投票!)。虽然显示复杂的数据和趋势是我的需求的一个很大的部分。@亚伦我没有考虑JMX的“无记忆”缺点。因此,创建一个简单的HTML页面是一个很好的方法。@Pascal ESB看起来不错,但我认为这对于我的需求来说有点沉重。@Brian经典的构建与购买决策可能是一个很难做出的决定。。。我不知道你的(未来)需要比你更好,所以你必须是对的:)接受!JavaMelody看起来不错。看起来你是这个项目的主要贡献者。是的,我是主要贡献者