《微软云计算Windows Azure开发与部署权威指南》——第6章 Windows Azure平台访问控制与总线AppFabric6.1 服务导向架构

简介:

本节书摘来自异步社区《微软云计算Windows Azure开发与部署权威指南》一书中的第6章,第6.1节,作者: 尹成 , 郝庭毅 , 张俊强 , 孙奉刚 , 寇睿明 更多章节内容可以访问云栖社区“异步社区”公众号查看。

第6章 Windows Azure平台访问控制与总线AppFabric

6.1 服务导向架构

微软云计算Windows Azure开发与部署权威指南
什么是SOA(Service-Oriented Architecture,服务导向架构)?SOA的理念广为人知,然而其概念解释又有多种版本。本书认为SOA是为了满足组织机构的商业需求而建立的松耦合的体系结构。

需要读者注意的是,SOA注重架构而不是实现,它不是一门技术,而是一门设计哲学,很多人将面向服务的架构和面向服务的实现混淆。SOA并不强调实现的技术,如Web服务。虽然目前大部分组织机构采用Web服务来实现松耦合的体系架构,但这并不代表SOA必须使用Web服务。表6-1是微软MSDN上的一个表格,纠正了人们对SOA的一些常见的误解。


547b0b204c70c1baf2b6470cf7414ab541dd745e

如何理解这里的“服务”呢?服务既可以是操作系统的进程,也可以是使用定义良好的契约的应用程序,该应用程序可以基于Web服务,也可以不使用Web服务,但是该服务必须可以加入到一个松耦合的体系结构中。下面给出设计服务的4个准则。

1.边界明确
服务之间通过显示的消息传递进行交互,该消息跨越定义良好的边界。跨服务边界可能需要很大的开销。此处的边界指的是一个服务的公共接口和其内部私有实现之间的界限。一个服务的边界可以通过服务描述文档(WSDL)公开。

2.服务自治
各个服务是发布、更新和管理都互相独立的实体。服务自治并不意味着服务会成为孤岛,基于SOA的解决方案往往是不规则的,通过配置一些服务得到。实现自治服务的关键是隔离和去耦。各服务之间的设计和部署都是相互独立的,只通过契约驱动的消息交互。

3.服务之间共享数据定义模式和契约,而不是类
服务交互只能通过服务策略、模式和基于契约的行为。大多数开发人员使用类来代表问题空间中的不同实体。类将数据和行为绑定到一种编程语言或者特定的平台结构。服务要将这种模型分开以最大化灵活性和互操作性。使用XML这种基于模式的消息进行交互的服务对程序语言和平台而言都是透明的。模式定义了消息对的结构和内容,而契约定义了服务自身的行为。

4.基于策略的服务兼容性
虽然人们对这条设计原则了解最少,但在实现Web服务灵活性方面该原则作用非常强大。仅仅通过一个服务描述文档WSDL是不能表达完整对服务交互的要求的。策略表达式可以将结构兼容性与语义兼容性分离开来,它提供了一个可配置的包含一系列交互语义的集合来控制某个特定服务的行为和期望值,服务提供者可以使用机器可读的策略表达式来表明操作要求。

相关文章
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
2375 4
|
2月前
|
监控 编译器 Windows
Qt5实现Windows平台串口通信
Qt5实现Windows平台串口通信
|
2月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
362 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
2月前
|
Linux API iOS开发
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
225 14
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
3月前
|
安全 Linux API
JEB Pro v5.31 (macOS, Linux, Windows) - 逆向工程平台
JEB Pro v5.31 (macOS, Linux, Windows) - 逆向工程平台
158 0
|
4月前
|
Unix Linux 编译器
解决在Windows平台上运行Golang程序时出现的syscall.SIGUSR1未定义错误。
通过这种结构,你的代码既可以在支持 SIGUSR1 信号的系统上正常工作,又可以在不支持这些信号的 Windows 系统上编译通过,确保跨平台的兼容性和功能的完整性。
202 0
|
Unix Linux iOS开发
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
Splunk Enterprise 10.0.0 (macOS, Linux, Windows) - 搜索、分析和可视化,数据全面洞察平台
136 0
|
7月前
|
安全 前端开发 Linux
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
215 3
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
|
9月前
|
固态存储 C++ 计算机视觉
Windows平台GIMP 2.10下载教程:零基础入门高级图像编辑
GIMP(GNU Image Manipulation Program)是一款开源跨平台图像编辑工具,支持图层管理、高级修图、色彩校正等功能,广泛应用于平面设计和照片修复。其优势包括全功能免费、插件生态丰富(600+扩展插件)、硬件要求低(1GB内存即可流畅运行)。本文详细介绍GIMP的软件定位、安装流程、首次配置及常见问题解答,帮助用户快速上手并充分利用其强大功能。
|
9月前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
252 0