服务层由来
业务层介绍,一般我们会在业务层添加一些服务类,这些服务类采用外观模式将服务提供给外界调用,从而隐藏了内部的复杂性,这样将处理逻辑的操作委托给了业务类。
既然业务层中已经存在服务类了,为什么还要添加服务层呢? 新的需求:
- 显示层不业务层层
- 添加缓存操作
- 安全认证
- 异常处理日志记录
一般在项目初期或业务不复杂的情况下,可以先不添加服务层。随着项目的发展和业务的变化,业务称变的复杂,应抽查一层服务层,是业务层只处理业务逻辑。
服务层的功能
提供更简洁的API
通过外观模式,将业务层的服务类或非服务类封装,提供供客户端简单调用的API
数据传输对象(DTO)
- 将应用层的数据封装DTO对象,传输给显示层
- 介绍显示层传来的DTO对象,映射为业务层的Model,调用业务层
远程服务开发
为了各系统更好的交互,有时需要开发一服务程序,通其他系统调用。即面向服务的架构(SOA).
SOA的原则
- 边界清晰: 服务部署后,可供其他服务轻松访问
- 服务自制
- 兼容性基于策咯
- 共享模式和契约 模式即数据,基于即行为。
微软提供WCF方式实现服务框架开发,在服务架构中:
客户端与服务端交换的数据即共享模式
为服务层提供接口,共享契约。客户端获得服务操作相同
客户端通过代理类访问服务
为了方便客户端调取服务,可添加一代理。创建方法:
- 创建共享模式(传输数据)
- 实现服务服务端的共享契约(接口) 代理类,通过WCF的
Channel
同服务端交换