深入理解WCF:构建实用分布式应用的指南
1. 面向服务的理念
在构建分布式应用时,WCF(Windows Communication Foundation)是一个强大的工具。它基于一个具体而简单的理念:服务。服务是一种概念性的手段,用于对功能进行建模,这些功能基于当前的业务问题,并且可以以一种易于设计、实现、测试和访问的方式组合在一起。可以将服务视为对象和组件之上的一种抽象,它是软件设计中的一种逻辑演进。
设计服务意味着关注软件的业务层面,同时始终考虑通信,以更好地封装功能并与整体架构中的其他部分解耦。需要注意的是,服务和面向服务的理念与XML、Web服务甚至著名的分布式应用的客户端 - 服务器概念并无直接关联。
服务的简单定义是:通过明确的边界来设计相关业务功能的一种方式。消费者通过发送和接收包含相关数据的消息与服务进行交互,以满足业务需求。在服务的世界里,通常不需要考虑技术平台,而应首先关注架构基础,而非实现技术。
实现服务理念主要有两种设计方法:
- 面向操作 :使用显式接口对服务进行建模,服务可以接收和发送消息。操作将数据、消息和消息交换模式组合在一起,通过端点在服务消费者和服务本身之间进行通信。这种方法与传统思维方式相符,不会产生太多冲突。
- 面向资源 :采用与Web、HTTP和超文本的思想和概念相一致的方法。将服务建模为一个显式暴露和可见的状态机(如REST),通过通用接口进行访问和触发。这种方法功能强大,但对于大多数开发人员和架构师来说,会产生严重的冲突。
在设计服务时,采取务实的方法可以获得最佳结果。这意味着需要了解两种服务风