BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

当SOA遇到形式化方法

| 作者 Mark Little 关注 14 他的粉丝 ,译者 陈义 关注 0 他的粉丝 发布于 2009年5月8日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

会看到人们仍然在讨论是否能成功实施SOA。在实施SOA的过程中,失败和成功的例子一样多。然而,成功或者失败背后的具体原因往往带有神秘色彩,这也许是因为SOA实施人员并不知道其中的具体原因,又或是出于保密的考虑而没有公开讨论这些原因。如果实施SOA成功了,那么最普遍的原因是该项目的治理/管理做得非常到位。尽管几十年的经验表明基于数学原理的系统规范和验证可以起到非常好的作用,但是我们很难听到诸如‘形式化(formal)’和‘方法(methods)’的只言片语。

早在2007年,我们就已经讨论了W3C在WS-CDL上所做的工作。其中就提及到WS-CDL是基于Pi演算(Pi Calculus)的……

CDL可以让业务干系人、业务分析师、企业架构师和应用工程师以一种同步方式分享他们关于系统的意见,其提供的方式既可以获取干系人的各类详细节,又可以使这些细节不暴露给其他人。 CDL为各类需求提供了强有力的必要来源。通过这种方式,CDL还确保了架构师在SOA中的重要地位,因为架构师决定了系统架构的建模、描述和实现。

数月后Steve Ross-Talbot(CDL的主要推动者之一)撰文认为“CDL就是计算科学中的测微计”……

……在删除一行代码之前,CDL描述不仅从需求上看是有效的,而且从计算角度(即脱离活锁、死锁和竞争条件)讲也是正确的。

Steve又发表了一篇文章并将CDL的方法论称为可测试架构(Testable Architecture)。在另外一篇文章(相关视频)中,Steve论述了几个真实案例(关于保险行业的),在这些案例中他认识到使用WS-CDL开发和部署SOA可以节省80%的时间,实施SOA的成功率也有所提高。

从这两个案例可以看出,一个虚无缥缈的SOA路线图已经变成了现实。SOA路线图需要整合遗留应用和门户网站,从而增强用户体验。

然后他介绍了开发这些解决方案的基于非CDL的初始评估:

在第一个案例中,编写解决方案和提供技术合同就用了15天。其中包括收集功能性和非功能性需求、制定数据模型的消息格式、理解业务处理以便解决方案能够被有效地监控,描述映射和仲裁服务间的服务契约、提供显示所需的个人服务行为的状态图以及提供协作背景的时序图。总共4个服务,包括客户端、仲裁、映射和遗留服务。

Steve指出,第二个案例比较复杂,完成这些工作用了60天。所有的用例都用UML来描述,并通过可测试框架(Testable Architecture)的方法论加以验证,同时也为CDL模型创建了时序图,这些时序图为测试CDL模型提供参考。其结果非常有趣(不过从科学的角度来看,这些结果需要能够在有意义的地方进行复制。)

在第一个案例中,收集需求和创建测试模型只用了不到1天的时间。而在第二个案例中,完成相同的事情却用了4天时间。只需要点击几下鼠标就可以从CDL模型中生成技术性合同、WSDL、BPEL、BPMN、状态图、时序图等文件。因此可以节省80%的时间,这或许听起来有些让人难以置信和充满神秘感。但实际上确实节省了大量时间。不仅如此,在使用BPEL和WSDL时还可以较早地发现设计缺陷。在对比需求、纠正需求和生成技术性合同方面,使用CDL模型比人工完成这些工作更具有严格性、完整性和明确性。

他指出,准确地描述有助于我们更好地理解我们需要什么(或认为就是需要的)。在部署之前可以验证这些描述,还可以在不影响用户的情况下彻底解决任何问题。另外,使用公认的形式化方法可以独立地开发组件,这与根深蒂固的传统观念不一样,传统观念认为只有当所有的组件部署在一起时,才能实现最初设计的功能。或正如Steve所说:

[我相信]形式化方法的描述将有助于改变我们高效、高质量地完成工作的方式。因此将创建解决方案的全过程上升到了一个抽象层面,可以更好地描述解决方案。

正如上文所述,无论哪一个数据都是很难证明这件事的。但是,如果这些结果都是可复制的,它们是SOA架构师工具集的一个有趣的增加物。
查看英文原文:SOA Meets Formal Methods


译者简介: 陈义,计算机应用技术专业硕士研究生,一直专注于SOA、BPM、ESB、EAI和MOM的研究及应用。热衷于开源SOA项目,有志致力于 Mule、ServiceMix、ODE、ActiveBPEL、ActiveMQ、OpenJMS、Camel、CXF、XFire以及Tuscany在中文社区的研究和推广工作。您可以通过honnom (at) 163.com联系到他。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT