惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - Hussar

中国高科技产业三大困境 [转贴]架构设计贵在务实 源代码,让.NET 平台上可以运行Python [原创]struct和class区别的背后 [翻译]部署Microsoft .NET Framework Version 3.0(含下载) 怎样作有效推论的策略 C#实现的18位身份证格式转换 [入门系列]面向服务的体系结构概述(第一部分) [入门系列]如何构建 SOA 系统 [入门系列]SOA 与其他技术的关系 [入门系列]面向服务的体系结构可以做什么? [入门系列]什么是面向服务的体系结构(SOA)? From TechEd: Putting the user back in SOA 架构设计师与 SOA (第二部分) 架构设计师与SOA(第一部分) 关于SOA的7个问题 .NET程序员面试的题一部 [原创]C#应用访问Microsoft SQL Server 2005分析服务 在 Oracle 产品中使用 .NET 存储过程
[入门系列]构成 SOA 的技术
Hussar · 2006-06-17 · via 博客园 - Hussar

SOA 本身是应该如何将软件组织在一起的抽象概念。它依赖于用 XML 和 Web 服务实现并以软件的形式存在的更加具体的观念和技术。此外,它还需要安全性、策略管理、可靠消息传递以及会计系统的支持,从而有效地工作。您还可以通过分布式事务处理和分布式软件状态管理来进一步地改善它。

SOA 服务和 Web 服务之间的区别在于设计。SOA 概念并没有确切地定义服务具体如何交互,而仅仅定义了服务如何相互理解以及如何交互。其中的区别也就是定义如何执行流程的战略与如何执行流程的战术之间的区别。而另一方面,Web 服务在需要交互的服务之间如何传递消息有具体的指导原则;从战术上实现 SOA 模型是通过 HTTP 传递的 SOAP 消息中最常见的 SOA 模型。因而,从本质上讲,Web 是实现 SOA 的具体方式之一。

尽管我们觉得 Web 服务是实现 SOA 的最好方式,但是 SOA 并不局限于 Web 服务。其他使用 WSDL 直接实现服务接口并且通过 XML 消息进行通信的协议也可以包括在 SOA 之中。正如在别处指出的,CORBA 和 IBM 的 MQ 系统通过使用能够处理 WSDL 的新特征也可以参与到 SOA 中来。如果两个服务需要交换数据,那么它们还会需要使用相同的消息传递协议,但是数据接口允许相同的信息交换。

既为了建立所有这些信息的适当控制,又为了应用安全性、策略、可靠性以及会计方面的要求,在 SOA 体系结构的框架中加入了一个新的软件对象。这个对象就是企业服务总线(Enterprise Service Bus,ESB),它使用许多可能的消息传递协议来负责适当的控制、流甚至还可能是服务之间所有消息的传输。虽然 ESB 并不是绝对必需的,但它却是在 SOA 中正确管理您的业务流程至关重要的组件。ESB 本身可以是单个引擎,甚至还可以是由许多同级和下级 ESB 组成的分布式系统,这些 ESB 一起工作,以保持 SOA 系统的运行。在概念上,它是从早期比如消息队列和分布式事务计算这些计算机科学概念所建立的存储转发机制发展而来的。

从开发人员的角度来说,他们使用的工具必须知道 SOA 的能力,并允许开发人员有效地使用 SOA 对象。这将设计 SOA 模型、开发服务和服务对象以及测试 SOA 应用程序这些过程包括进来并组成一个整体。因而,开发人员的工作必须为面向服务的应用程序设计/开发(Service-Oriented Application Design/Development,SOAD)做好准备。