NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

“微软 SOA 参考模型”介绍章节初始草案

  • 2007-04-23
  • 本文字数:1366 字

    阅读完需:约 4 分钟

John Evdemon 微软架构策略团队的一个架构师,发布了一个微软 SOA 抽象参考模型(Microsoft Abstract SOA Reference Model)的介绍章节草案。根据 Evdemon 所说,这个文档以抽象参考的方式方便人们理解、设计、构建基于面向服务原则的软件架构。

在第一章节的开始部分,John Evdemon 声明说,对于 SOA 微软一直赞成“长到正好”(grow-to-fit)的方式:

在这个方式中,SOA 由战略远景和业务需要驱动,通过为传递业务需要而设计的增量、迭代的 SOA 项目达到目标。从 1999 年.NET 框架第一次发布以来,微软一直应用这一技术帮助客户实现他们的 SOA 诉求。

尽管被称为 SOA 抽象参考模型,这个文档也提供了可行的方法,比如通过所提供的用例驱动方式解释 SOA 的底层架构需求。Evdemon 解释了微软对 SOA 的理解——“在 SOA 里面存在三种抽象功能层”:

  • 表现 / 公开(Expose)——服务实现架构(Service Implementation Architecture)
  • 消费(Consume)——应用架构(Application Architecture)
  • 组合(Compose)——服务集成架构(Service Integration Architecture)

前两个层或者架构和传统的 Web 服务三角(Web services triangle)有关,即 Web 服务由一个或者两个参与者注册或者提供,而被其他参与者使用的地方。第三层则表示了 SOA 的松散耦合本质,在组合或者集成服务时它有很强的灵活性。

[…]SOA 架构模型是不确定的(fractal)。也就是说,一个服务可以用来表现 IT 资产(如一列业务系统),可以组成工作流或者业务流程(每一个都可以表示为一个服务),还可以被终端用户、系统或者其他服务消费等。SOA 是不规则的,那些层的模型不是。

三个架构中的每一个都包含五个架构功能:

  • 通信:在发送方和接收方之间是如何完成消息传输的;
  • 工作流和流程:基于工作流的流程和实现编制(orchestration)或者编排(choreography);
  • 数据:数据管理
  • 用户经验:和前后文需求相关的服务使用方法;
  • 认证:认证管理和生命周期。

通过这五种架构功能可以更好地理解目前的许多挑战,如将已经存在的 IT 资产表示为服务,组合服务到业务流程,和跨组织组合那些流程等。

关于服务设计,John Evdemon 指出四个原则,并总结出这个文档所表达的目的:

在这一章里,我们提供了一些理解 SOA 不确定实质的有用参考。服务是 SOA 的基本构建模块,尽管服务不一定必须是 Web 服务。理想的情况是,那些服务应都符合上述四个服务设计原则,因为这些原则描述了一系列服务范围的最佳实践、依赖、通信和基于策略的配置。在这些原则专注于服务设计时,认识到服务自己可以不必是方案架构就是非常重要的了——微软使用一个抽象的参考模型描述了 SOA 的不同方面。SOA 抽象参考模型提供了三个基本概念,以帮助大多数组织理解在他们的解决方案架构中,服务所扮演的角色。

尽管微软抽象参考模型没有推出一个实际的面向服务架构,SOA 的不同方面和这一章中介绍的每一个方面的底层架构功能都为构建 SOA 提供了一个更坚固的模型,而不是定义上的 OASIS SOA 抽象参考模型。接下来的章节会详细讨论每一个方面和功能。最终的文档更像是介绍几种微软的技术和产品(包括第一章中提到的几个),以根据微软抽象参考模型可以用它们来构建 SOA 应用。

查看英文原文: Microsoft SOA Reference Model, Initial Draft of the Introductory Chapter

编辑注:感谢台湾微软技术王森先生对本文部分专业术语翻译的指导。

2007-04-23 05:371021

评论

发布
暂无评论
发现更多内容

案例推荐丨安擎携手伙伴,保障“智慧法院”更加高效

科技热闻

【Unity】升级版·Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件

萧然🐳

游戏开发 Unity 7月月更 Excel工具

「小程序容器技术」,是噱头还是新风口?

ToB行业头条

前置机是什么意思?主要作用是什么?与堡垒机有什么区别?

行云管家

堡垒机 前置机

Redis 持久化机制

知识浅谈

redis 面试题

体验Python剪辑视频以及相关问题解决,一劳永逸!

迷彩

Python Moviepy视频剪辑处理 7月月更

TDengine 社区问题双周精选 | 第二期

TDengine

数据库 tdengine 时序数据库

spark调优(二):UDF减少JOIN和判断

怀瑾握瑜的嘉与嘉

spark 7月月更

让 Rust 库更优美的几个建议!你学会了吗?

非凸科技

rust API

Python 入门指南之深入 Python 流程控制

海拥(haiyong.site)

7月月更

COSCon'22 社区召集令来啦!Open the World,邀请所有社区一起拥抱开源,打开新世界~

开源社

开源

同构+跨端,懂得小程序+kbone+finclip就够了!

Speedoooo

小程序 跨端开发 小程序容器 kbone web同构

浅谈网络安全之文件上传

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

低代码平台中的数据连接方式(上)

Baidu AICLOUD

前端 低代码 数据格式 数据通信 爱速搭

python变量:引用和可变性

AIWeker

Python python小知识 7月月更

MetaForce原力元宇宙开发搭建丨佛萨奇2.0系统开发

开发微hkkf5566

深度解读 RocketMQ 存储机制

阿里巴巴中间件

阿里云 RocketMQ 云原生 中间件 消息队列

室内LED显示屏应该怎么选择?这5点注意事项必须考虑在内

Dylan

LED显示屏 户内led显示屏

让我们,从头到尾,通透网络I/O模型

C++后台开发

网络编程 IO多路复用 C++后台开发 网络io模型 C++开发

安全保护能力是什么意思?等保不同级别保护能力分别是怎样?

行云管家

等保 等级保护 安全保护能力

Spring Cloud源码分析之Eureka篇第三章:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)

程序员欣宸

Java SpringCloud 7月月更

面试题:AOF重写机制,redis面试必问!!!

知识浅谈

redis 底层原理

(1)长安链学习笔记-启动长安链

🚩🚩🚩建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!

岛上码农

flutter ios 安卓 移动端开发 7月月更

代理和反向代理

沃德

程序员 7月月更

Efficient ETL Testing

Bright

数据开发 ETL 大数据开发 EasySQL

NFTScan 开发者平台推出多链 NFT 数据 Pro API 服务

NFT Research

NFT 研发团队

存币生息理财dapp系统开发案例演示

开发微hkkf5566

TiFlash 源码阅读(四)TiFlash DDL 模块设计及实现分析

PingCAP

长安链学习笔记-证书研究之证书模式

长安链

gRPC三种Java客户端性能测试实践

FunTester

“微软SOA参考模型”介绍章节初始草案_SOA_Hartmut Wilms_InfoQ精选文章