- 作者:zhaozj
- 发表时间:2020-12-23 11:00
- 来源:未知
一切面向服务:现在正是时候SOA 已经到来,但它能走远吗?
作者: Daryl Plummer
“人是面向服务并受事件驱动的”,在我谈论系统设计的那段日子里,我总会记住这句话。每天早晨(或晚上,这取决于您的习惯),我们进行淋浴,使用水“服务”来清洁我们自己。如果电话铃响,或者您邻居的猫被您的罗特韦尔犬逼到无路可逃,您会停止淋浴,转而处理这个“事件”。如果您回应电话响铃事件,您就要使用一项电话“服务”,而且如果您把那个毛茸茸的小家伙从罗特韦尔犬的爪下救出,我认为您的邻居(喜欢养猫的人)会认为这是一项服务。所以,人是面向服务并受事件驱动的。系统也应该是面向服务并受事件驱动的。逐渐地,我们现在不得不交付能够响应个人、合作伙伴或整个价值链需要的灵活系统。Michael Dells提出的“个人市场(market of one)”正在推动企业构建能够实时作出响应的系统。广大的合作伙伴网络正在促使我们以惊人的速度将系统集成。扩大的供应链系统使我们置身于一个多公司的业务流程网络中,而该网络最需要的就是灵活性。面向服务可帮助我们实现以上内容。
面向服务的框架在Gartner中,我们相当多地讨论了面向服务的架构(SOA)。现今,事件驱动的架构也开始增加技术成熟度曲线(hype cycle)的斜率。这两个概念组合在一起,使我们可以构建一个框架来描述一些关键性领域,而在这些领域中,面向服务正在改变设计、部署和使用系统的方式(参见图1)。面向服务的架构(SOA):面向服务的系统的基本拓扑包括客户、接口和提供者。客户使用接口从提供者处请求“服务”。部署服务时,必须保证修改该服务不会影响到客户,因为客户只能看到接口。不再需要为每个应用程序定义架构,SOA成为了默认的标准。面向服务的应用程序开发(SODA):如果您正基于SOA构建应用程序,您会发现,使用服务进行开发与传统意义上的开发并不完全相同。如果您还没有看到这一点,只需等待,但你的罗特韦尔犬已经开始行动了。使用服务似乎很简单,但是存在许多潜在问题,比如需要模拟服务行为,组装不能中断的复合服务,对业务流程建模以获得正确的行为,以及处理对您使用但并不拥有的服务所做的修改。SODA是一个描述如何处理这些问题的概念(参见图2)。SOA系统可以非常灵活,但是如果没有正确的面向服务的开发计划,没有SODA,它们也会变得相当不灵活。面向服务的业务应用程序 (SOBA):这是服务策略中的最后一项,也可能是最关键的。打包的业务应用程序是新服务打造车间。我们将会看到,不灵活的单个程序包被重新设计为一组相互交互的服务。应用程序定义的本质正在改变。更加关键的是,基础架构、开发和应用程序之间的屏障正在消失。5年之内,我们将看到对这些层的集成会消除它们和支持使用它们的产品之间的差别。事件驱动的架构 (EDA):从简单的到复杂的事件流程,发送和处理事件的能力都愈发显得重要。SOA和事件是相互补充的,因为事件可以调用服务。复杂的事件处理将变成下一个要克服的障碍。