很抱歉这个问题牵涉其中,但这是我已经研究了一段时间的事情,它真的让我很沮丧。我觉得在当今时代,我们有100万零1种实现服务的方法,tat是跨平台(SOAP),易于构建(多亏了.NET、java和其他框架)。然而,这些技术在社会上已经存在了5-10年,但我们(至少是我)经常受到同样问题的困扰:
这些问题中的每一个都需要组织实现的某种类型的自定义解决方案。#1的文档和UDDI。#2的虚拟化和负载平衡硬件/软件。3的跟踪、写入数据库/日志的异常等。4的自定义部署软件。我为一个中等规模的组织工作。我甚至无法想象一个像Sun、Google或微软这样规模的公司会如何解决这些难题。
也许我的愿景是不现实的,但我梦想拥有一个框架本身,它位于管理上述所有内容的服务器集群之上。我欣喜若狂地读到了微软的AppFabric,因为它似乎真的将BizTalk的一些功能扩展到WCF服务实现者:缓存、托管、监控等等。然而,据我所见,我仍然觉得它没有达到我的梦想,它可以帮助开发人员和组织编写跨集群的服务,很容易部署到集群中,并且可以识别,甚至是版本。
所以,我不是说这篇文章是关于我的梦的。我确实有个问题。首先,我的梦想/想要完全不现实吗?此外,有什么解决方案可以解决这些问题,而不局限于开发服务的新的和更专有的方法(BizTalk)?最后,对于一个完整的SOA / ESB解决方案,我们认为现在或将来市场上最有潜力的地方是什么?
发布于 2010-08-14 06:37:48
我想你说的是不同类型的问题。
1)。不阅读文档的开发人员。这是一个地方性的问题,不仅仅局限于SOA --只需看看有关StackOverflow的一些问题。至少,开发人员会问您是否有服务,而不是在他们自己的代码中复制逻辑。对于这类问题,我看不到任何技术解决方案,您已经提供了很好的注册和文档,但是有些开发人员更喜欢与人交谈。也许,甚至,这实际上是一件好事--人与人之间的互动比互动的技术内容更有价值。或者,你太好了:“不,我不会回答这个问题,去看看吧。”
2)。缩放。有解决这一问题的技术。(免责声明我为IBM工作,他们销售一些,所以我将引用这些--我不打算暗示IBM是这个领域中唯一有解决方案的供应商。)有些产品,如这,可以提供新机器、安装软件栈并将其添加到集群以解决工作负载更改。然后,在Java世界中,在更细粒度的控制级别上,Application可以动态地塑造流量并调整集群。请参阅WebSphere虚拟企业
3)。监测。我不明白你在这里所期望的。在所有类似的情况下,这些棘手的bug将需要应用程序级别的跟踪。对于一些问题,如发现内存泄漏和性能瓶颈,有非常好的工具,至少在Java世界中是这样。
4)。我无法与.Net世界交谈,但我认为Java应用服务器在跨集群中部署应用程序方面做了合理的工作,在我们使用JNI并需要部署DLL的情况下,我们可以使用我提到的Tivoli堆栈之类的产品来管理这个问题。
因此,总之,我认为供应商正在努力解决这些问题。我不认为没有SOA你的生活会更简单。相反,想象一下同样的问题适用于无数独立的独立应用程序。
发布于 2010-08-13 21:50:23
这是我的两美分。
我曾经是一家不正确使用SOA的公司的开发人员。他们实现的最糟糕的解决方案是使用SOA在桌面应用程序上对表单元素进行现场验证。要执行这些操作,需要非常低的延迟时间。等待2到4秒,换到一个新字段,很快就会变老。该服务在biztalk服务器上的网络上运行。每个人都讨厌它。
如果要这样做,您确实需要花费大量时间来处理网络延迟、服务失败、时间安排和超时问题。
不要太激动,认为SOA是每个问题的解决方案。在高级别使用它很好,在低级别使用它会使您的应用程序脆弱、缓慢,并且不可能进行调试。
发布于 2011-04-14 20:15:00
如果您与IBM或一个大型SOA供应商交谈,他们就会得到涵盖每个场景的产品。
Identification (Tracking services) - UDDI; e.g., had to remind a co-worker the 3 times this month where a service is at, despite the fact there is a wiki that discusses the service and a PDF version of the same documentation that lives in a repository where we keep our service docs.注册表和存储服务器。很好的一点是,它可以进行治理(升级、降级、版本控制、批准),您的ESB通常在注册服务器上对最新和最大的服务器进行“查找”。
Scalability - Out of the box clustering; As organizations, we spend a lot of money on paying our admins just to watch the utilization of our services and make decisions like, does this service need more RAM, more CPU, more interfaces? How do I load balance this?事务监控软件,如。基本上,它从横向的角度跟踪事物,并从最终用户/最终应用程序的角度来查看是否存在服务中断。
至于你的群集..。您必须选择好的中间件和体系结构。就个人而言,把“云”准备好。带有NoSQL的App服务器由MOM连接。
Monitoring - error logging, etc; I can't count how many times I have to set up tracing on services in order to see why a bug is happening that only seems to affect one customer, or have to code logic into the service to serialize exceptions, log exceptions to dbs, fail gracefully, etc.您的开发人员和供应商的企业标准。将所有业务和系统事件集成到一个仪表板中。(大多数公司都会把这些信息泄露出去)。大多数企业商店都已经这样做了。
Deployment - easy to deploy; none of this deploying DLLs to 5 load balanced servers啊..。Microsoft IIS Web部署工具2.0。只需更新主服务器,就可以同步MS服务器的100多个。真的很简单。
https://stackoverflow.com/questions/3480767
复制相似问题