对不起,这个问题我一直在研究一段时间,这让我非常沮丧。我觉得在今天这个时代,我们有一百万种实现服务的方式,它们都是跨平台(SOAP)并且易于构建(感谢.NET,Java和其他框架)。然而,这些技术已经在社会各界的5 - 10年,但我们(至少我)不断地与同样的问题所困扰:SOA/ESB难题
- 识别(跟踪服务) - UDDI;例如,本月必须提醒同事3次服务所在的位置,尽管事实上有一个讨论该服务的wiki和一个生活在我们保存我们的服务文档的存储库中的同一文档的PDF版本。
- 可扩展性 - 开箱即用的集群;作为组织,我们花了很多钱来支付管理员的费用,只是为了观察我们的服务利用情况并做出决定,这项服务需要更多的RAM,更多的CPU,更多的接口吗?我如何负载均衡呢?
- 监测 - 错误记录等;我无法计算必须多少次设置跟踪服务,才能了解为什么一个错误只会影响一个客户,或者必须将逻辑编码到服务中才能序列化异常,将异常记录到dbs,优雅地失败等。
- 部署 - 易于部署;这些部署DLL都不是5个负载均衡服务器
这些问题中的每一个都需要组织实施的某种类型的自定义解决方案。 #1的文档和UDDI。 #2的虚拟化和负载平衡硬件/软件。跟踪,为#3编写数据库/日志的例外等。为#4定制部署软件。我为一个中等规模的组织工作。我甚至无法想象Sun,Google或微软这样的公司会如何解决这些难题。
也许我的愿景是不现实的,但我梦想拥有一个框架本身,它位于管理上述所有内容的服务器群集之上。我很高兴地看到微软的AppFabric,因为它似乎将BizTalk的一些功能扩展到了WCF服务实现者:缓存,托管,监控等等。但是,从我所见到的情况来看,我仍然感觉不到它的存在直到我的梦想成为一体化解决方案,这种解决方案可以帮助开发人员和组织轻松编写跨集群的服务,轻松部署到集群中,并且可以识别,甚至可以进行版本管理。
所以,我不是说这篇文章是关于我的梦想。我确实有一个问题。对于初学者来说,我的梦想/想要完全不现实?此外,有什么解决方案可以解决这些问题,而不会将我们限制在开发服务的新专有方法(BizTalk)中?最后,关于完整的SOA/ESB解决方案,我们现在或将来在哪里看到市场上最有潜力?