"SOA技术白皮书涂航武汉大学计算机学院 2008年11月"
**SOA(Service-Oriented Architecture,面向服务的架构)是一种软件设计和集成的方法论,它强调将业务功能分解为独立的服务,这些服务能够通过标准接口进行通信,以构建可复用、灵活和可扩展的系统。**
### 1. SOA的概念和意义
- **SOA的概念**:SOA是一种架构模型,它允许不同的应用程序通过定义良好的接口互相交互,以完成特定的业务功能。这些服务是自包含的,可以独立部署和升级,且不依赖于特定的应用程序环境。
- **SOA的革命性意义**:SOA提供了一种全新的方式来整合企业的IT资源,使得业务流程可以灵活组合,提高了系统的响应能力和适应变化的能力。
### 1.3 SOA的基本特征
- **可从企业外部访问**:服务可以被内部和外部的消费者使用,增强了系统的开放性和互操作性。
- **随时可用**:服务应具备高可用性,以确保业务连续性。
- **粗粒度服务接口**:服务接口设计得足够大,以减少接口数量并提高复用性。
- **分级**:服务可以分为多个层次,如业务服务、数据服务等,以清晰分离职责。
- **松散耦合**:服务之间相互独立,改变一个服务不会影响其他服务。
- **可重用的服务及服务接口设计管理**:服务设计时考虑其复用性,便于在不同场景下使用。
- **标准化的接口**:使用如WSDL、SOAP等标准协议确保服务间的通信规范。
- **支持各种消息模式**:支持请求-响应、发布-订阅等多种消息交换模式。
- **精确定义的服务接口**:接口定义明确,减少误解和错误的可能性。
### 1.4 SOA的优点
- 提高了灵活性和可重用性,降低了维护成本。
- 加强了系统的互操作性和集成性。
- 支持业务流程的快速变化和调整。
- 促进了企业内外部的合作。
### 2. SOA的来源
SOA的发展历程涵盖了XML、Web服务、BPEL(Business Process Execution Language)、WindowsDNA、EAI(Enterprise Application Integration)、SOI(Service-Oriented Infrastructure)、ESB(Enterprise Service Bus)等多个阶段,逐渐演变为当前的成熟技术,并由多个标准组织如W3C、OASIS、WS-I等推动标准制定。
### 3. SOA与过去架构的比较
- **客户-服务器架构**:SOA相比传统的客户端/服务器架构,提供了更高级别的抽象和更松散的耦合,使系统更加灵活。
- **分布式互联网架构**:SOA强调服务的独立性和标准化接口,比分布式架构更好地解决了跨网络、跨平台的集成问题。
- **混合Web服务架构**:SOA通过统一的服务接口,解决了混合架构中的兼容性和集成难题。
### 4. SOA的实现
- **SCA(Service Component Architecture)和服务数据对象(SDO)**:SCA提供了一种声明式的方式来构建和部署服务,SDO则为服务间的数据交换提供了一致的模型。
- **WCF(Windows Communication Foundation)**:微软提供的框架,用于构建、配置和部署服务,支持多种通信协议和数据格式,是实现SOA的一种重要工具。
SOA是一种强大的架构模型,旨在通过标准化的服务接口和松散耦合的服务来构建灵活、可扩展的企业级系统。它促进了不同系统之间的协作,简化了复杂业务流程的管理和实施,是现代IT架构的重要组成部分。