[Professional ASP.NET Design Pattern 读书笔记系列] 06 服务层

1. 什么是服务层?

服务层就是对业务逻辑层进行包裹,并且为上一层提供接口的层。

2. 什么是SOA?

SOA指的是一种架构方式,即服务导向的架构方式。其特征是对于业务应用层所要使用的services,分割为一个有一个耦合度非常小的service,这样这些独立的service可以被一个或者多个应用所调用。

3. 什么是SOA的四原则?

1)Boundaries Are Explicit 边界是显示定义的。

即服务接口清晰明了,服务与服务之间的界限清楚。

2)Services Are Autonomous 服务是自主的。

即服务与服务之间的关系是独立的,任何一个service都不应该依赖于另外一个service而存在。客户端可以按任意顺序调用这些service,而不是必须按照一定的规则来。

3)Services Share Schema and Contract, Not Class,服务用来交换数据的应该是结构和合同,而不是类。

即服务与客户端交换数据应该使用的是contract,而不是某种服务的实例。一种典型就是使用XML进行通信。

4)Service Compatibility Is based on Policy 服务兼容性基于策略实现

即服务应该为自己如何调用,可以实现什么样的功能等制定一个策略,这样client端便可以根据这些策略,知道自己如何调用这个service。

4. 什么是Facade Design Pattern 立面模式

即为一个复杂的业务逻辑制定一个简单的使用接口,外部只需要简单通过这个接口就能使用相应的功能。

5. 什么是文档消息和请求-响应模式?

文档消息模式就是以一个单参数、单返回值的接口来替代多参数、单返回值的接口。比如,一个接口可能因为参数个数的不同,演变成了多个接口,而这多个接口可能只是实现了一个功能,比如:

Custom[] RetrieveCustomers(string country);
Customer[] RetrieveCustomers (string country, string postalCode);
Customer[] RetrieveCustomers (string country, string postalCode, string street);

如果使用文档消息模式,则将这些参数统一打包成一个类,统一传入该类的对象就可以了:

Customer[] FindBy(CustomerSearchRequest request);

而请求-响应模式,则在文档消息模式的基础上,不但传入的参数使用的是Document,连返回值也是Document,这样传入的参数和返回值都是有他们各自的基类的子类的对象。比如:

CustomerSearchResponse RetrieveCustomers(CustomerSearchRequest request);

6. 什么是保留模式?

SOA设计的一个原则是Services Are Antonomous,即服务应该是自主的,所以Service不应该带有状态。但是,对于有的service,可能需要依次请求才能完成,对于这种情况,便需要使用保留模式Reservation Pattern。即第一次请求的时候,在返回的Response里面携带一个Reservation ID,规定一个有效期限,这样以后所有在这个有效期限内的该client的请求,都会带有该Reservation ID:

image

 

7. 什么是幂指数模式

指的是任何一个请求都带有一个特定的CorrelationID,这样一旦请求执行以后,会在缓存里保存着,这样当下一次请求到来,只需要从缓存里将先前的同样请求的结果取出来就可以了:

image

转载于:https://www.cnblogs.com/charrli/archive/2011/01/29/1947549.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值