一切面向服务:现在正是时候
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和事件是相互补充的,因为事件可以调用服务。复杂的事件处理将变成下一个要克服的障碍。
为什么现在正是时候?
您可能会说:“之前我已经听得够多的了。为什么它这次会起作用呢?”好,让我简单地回答一下这个问题。首先,Web服务已经在服务中催生出新的影响力。我们很少看到,基本标准被各个行业如此一致地接受。其次,对灵活IT系统的需要不再是一个可以选择的事情,而是变成了当务之急,这是业务的需要。还有,Internet的使用削弱了我们对使用“其他人的服务”的偏见。最后,应用平台套件是多组集成的技术,这些技术使面向服务的一切可以更轻松而可行地进行大量生产。
它可能失败吗?当然。在IT业中,我们并不会因为搁浅的技术战略而不知所措。你可以等待,可以观察,也可以为自己的利益而行动。
所以,停止淋浴,去救救小猫吧。面向服务的一切已经到来。您要做的就是对它进行计划,而不是让它发生在自己身上。价值将得到体现。人是面向服务并受事件驱动的。如果您不相信我,至少也应该相信这一点。
关于作者
Daryl Plummer是Gartner Inc 的集团副总裁和首席研究员。他是Web服务、应用程序开发和架构等领域的主要分析家。