11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

当 SOA 遇到形式化方法

  • 2009-05-07
  • 本文字数:1714 字

    阅读完需:约 6 分钟

会看到人们仍然在讨论是否能成功实施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 联系到他。

2009-05-07 04:461314

评论

发布
暂无评论
  • 持续交付:有持续集成就够了吗?

    让软件具备部署到生产环境的能力,这里面有两个关键点:验证发布包和部署。

    2019-03-25

  • 架构决策作为可复用设计资产

    面向服务架构的决策建模(SOAD)框架可以帮助捕获那些经常重现的架构决策,并在相关项目中使用这些决策来指导设计。在这篇IEEE文章中,Olaf Zimmermann探讨了这种以决策为中心来指导设计工作的方法。另外他还描述了在SOAD元模型中使用的两类模型:指导模型和决策模型。

  • SOA Wordle:看上去很美?

    Mike Matsumura完成了一个有趣的SOA wordle(word cloud,词汇云),它是对SOA的准确反映吗?

  • 书摘和访谈:Open Source SOA

    Boris Lublinsky 采访了Jeff Davis,该访谈是Davis新书《Open Source SOA》评论的一部分。本书涵盖了选择和使用开源产品实施SOA的内容。采访过程中抛出了一些关于SOA是“业务问题”还是技术性分布式系统;SOAP vs.REST;WSDL,“坚持标准”作为评估标准等问题。

  • SOA 与云计算有多大关联?

    在最近的ebizQ的云QCamp大会上有一个分会场讨论了云计算的当前状态以及它与SOA之间的关系等话题。与会成员达成的共识是云能够加强SOA所承诺的那些优势,并促使其为业务提供更坚实的基础。

  • OMG 发布 SoaML 草案

    OMG发布了SoaML草案,它是针对于服务的UML Profile和元模型规范。SoaML(建模语言)是对UML 2的一个标准扩展,其目的是为了简化服务的建模。

  • DSL:你也可以设计一门自己的语言

    即便我们不去设计一个内部DSL,这种写代码的方式也会对我们代码质量的提高大有助益。

    2020-06-17

  • 调查显示,SOA 失败?

    Assaf Arkin对最近一篇指出SOA失败的报道提出了质疑,接着ZDNet的Joe McKendrick写了篇文章来分析SOA失败的含义。

  • 一种针对 SOA 的消息类型架构

    这篇文章提出了一种新的消息类型架构,它以两个DSL为基础,起到了帮助管理SOA中消息格式的作用。这种方法通过消息类型定义中引用的企业数据模型促进了重用,并且有助于使数据治理流程和SOA治理流程保持一致。

  • Michael Poulin 炮轰 SoaML

    Michael Poulin对SoaML规范提出了批评,认为它是一个以角色/参与者为中心的模型,不是一个以服务为中心的模型。在他看来,SoaML搞的就是一种权力、责任和义务的结构,以该结构而非业务需求作为企业服务架构的基础将有损于面向服务的精神。

  • SOA 领域建模,用 OOD 还是 SOA 方法?

    SOA领域建模时应该从哪开始呢,信息模型还是功能性结构?使消息格式标准化的方法就是规范数据模型吗?SOA信息模型有哪些不同的阶段?Gervas Douglas在Yahoo的SOA邮件讨论组的专家们对这些问题展开了讨论,提出了他们的观点。

  • 书评:《应用 SOA》

    《应用SOA》是由四位一流SOA专家合著关于SOA的新书,其主旨是帮助你成功地实施SOA。尤其是,这本书将帮助你把你的SOA项目与企业架构、IT治理、核心数据和BPM项目结合起来。

  • DevOps、SRE 的共性:应用全栈思路打通开发和运维

    我讲述了DevOps和SRE的目标、原则和具体实践,并结合实战给出了通过“人、流程、工具”的步骤落地DevOps的方案。

    2019-09-09

  • 文章:SOA 实现 8 大陷阱

    本文作者Thomas收集了自去年以来所注意到的SOA实现八大陷阱,希望能为读者实现SOA提供借鉴。

  • 实战一(上):业务开发常用的基于贫血模型的 MVC 架构违背 OOP 吗?

    对于业务不复杂的系统开发,基于贫血模型的传统开发模式简单够用;如果是复杂的,那基于充血模型的DDD开发模式更有优势。

    2019-11-27

  • 持续交付和 DevOps 是一对好基友

    持续交付与 DevOps的关系可以概括为:DevOps 的概念更宽泛,是持续交付的延伸;持续交付更专注于技术与实践,是 DevOps 的工具及技术实现。

    2018-07-10

  • BDD 是什么东西?

    当 JUnit 带来的自动化测试框架风潮迅速席卷了整个开发者社区,成了行业的事实标准,就开始有人基于测试框架的模型进行延伸了。各种探索中,最有影响力的就是 BDD。

    2021-09-13

  • OASIS 研讨会:SOA 中的可组合性

    OASIS即将举行为期3天的研讨会,主题为“SOA中的可组合性”,会议的地点位于加州的Santa Clara,时间是4月28号到4月30日。来自厂商和最终用户公司的工程师和科学家将讨论的主题包括:Mashups、面向服务的Ajax(Service-Oriented Ajax)、SCA、BPEL、SDO、BPM、Web服务事务、SOA中的数据安全、SOA参考架构……

  • 一封普通的 SOA 检讨书

    Gartner的分析师以虚拟一个SOA架构师/工程师给CEO/CTO写信的口吻,从他们的角度解释了SOA为什么会失败。尽管这只是一个虚构的故事,但也提示了一些有趣的观点。

  • 文章:ESB 综述

    对于ESB,业界公认的一些功能包括,基于消息、使用XML、支持转换和路由等等。但这就是ESB的最佳定义吗?如果要使用ESB,该如何部署?同时ESB在SOA中到底是充当什么样角色?如果我要使用ESB,有没有使用案例可供参考?种种这些疑问,在InfoQ的ESB综述系列中都可找到答案。

发现更多内容

钉钉协同引擎与应用场景技术探索

阿里巴巴终端技术

分布式 跨平台 客户端 开发框架

哈尔滨市消防救援支队:用宜搭打造消防智慧大脑,守护冰城平安

钉钉宜搭低代码

低代码 数字化 消防 钉钉宜搭

DDoS攻击与防范策略

喀拉峻

网络安全 信息安全 DDoS

RocketMQ 开源爱好者请注意邀您共探行业应用与生产实践

阿里巴巴云原生

艾特网能全面参与数据中心蒸发冷却空调系列标准编制

科技热闻

多终端运行小程序,快速丰富智慧社区使用场景

Speedoooo

智慧社区 小程序管理平台 智慧家居 智能家居生态平台 生态平台

BookKeeper PMC 成员翟佳受邀参与DataFunSummit 大数据存储架构峰会

Apache Pulsar

开源 架构 云原生 bookKeeper Apache Pulsar

ModStartCMS模块化建站系统 v3.6.0 内容标签增强,电脑手机适配

ModStart开源

NFT元宇宙开发Defi模式NFT游戏开发DAPP

Geek_232be3

区块链 NFT生态链游

直播回顾|TGIP-CN 036:Apache Pulsar 最新技术进展与动态

Apache Pulsar

开源 云原生 中间件 Apache Pulsar Apache Pulsar 社区

车联网平台百万级消息吞吐架构设计|车联网系列专题 05

EMQ映云科技

车联网 物联网 IoT emq 3月月更

博文推荐|使用 Apache Pulsar 和 Scala 进行事件流处理

Apache Pulsar

开源 分布式 云原生 Apache Pulsar Apache Pulsar 社区

流动性挖矿开发模式,方案设计

Geek_232be3

流动性挖矿

王者荣耀商城异地多活架构设计

王大胖

多云管理需求分析与好用的工具介绍

行云管家

云计算 混合云 多云 云管理

最佳代码扫描工具,实现自动化代码扫描服务

阿里云云效

云计算 阿里云 开发 代码扫描 代码安全

重视软件开发的黑匣子

菜根老谭

bug 系统安全 程序日志

成本管理系统解决方案

低代码小观

企业管理 资产管理 成本优化 低成本 CRM系统

大咖说|网易数帆论道 PolarDB 数据库开源 & 存储生态

大咖说

数据库 阿里云 开源 网易

95 后新生代 Committer 贺张俭:谈谈年轻人的开源观

Apache Pulsar

开源 云原生 物联网 Apache Pulsar Apache Pulsar 社区

企业和团队如何创建高效实用的知识管理体系

小炮

知识管理 企业

Apache ShardingSphere 首篇论文被 ICDE 收录,全球数据库发展迎来新局面

SphereEx

数据库 ShardingSphere SphereEx apache 社区

流动性挖矿APP系统开发介绍模式

Geek_232be3

LIP流动性挖矿

阿里代码依赖漏洞检测服务,高效杜绝代码安全隐患

阿里云云效

云计算 阿里云 云原生 代码安全 依赖漏洞检测

TDengine 在蔚来能源系统的落地实践

TDengine

数据库 tdengine

设计模式—代理模式以及动态代理的实现

Linux服务器开发

c++ 设计模式 后端开发 Linux服务器开发 Linux后台开发

【等保】二级等保是什么意思?哪些企业要做?多少钱?

行云管家

网络安全 等保 二级等保

当SOA遇到形式化方法_SOA_Mark Little_InfoQ精选文章