传送门☞Android兵器谱☞转载请注明☞http://blog.youkuaiyun.com/leverage_1229
服务层
服务层主要体现了SOA体系下的组件复用和业务复用机制。服务的边界定义决定于粒度和耦合度。粒度表示的是一个服务的大小,它可以理解为服务操作的范围,粗粒度的服务,操作的内容广而且杂;细粒度的服务,操作的内容细而且简单。粗粒度的服务设计,可以减小服务之间的耦合性,但付出的代价就是增加服务的复杂性,服务具备了太多的功能,增加了设计的复杂性和维护的难度;细粒度的服务,可以让服务的实现变得简单,但这样会增加服务的数量,服务过细过多,这样必然有一些服务需要组合才能实现一定的功能,那样就增加了服务之间的耦合度,只要其中一个服务发生了变动,势必牵一发而动全身。
耦合代表的是服务与服务之间的关系。SOA的初衷就是为了降低系统各个部分之间的耦合性,使得服务可以重用。但很显然,耦合性是受到服务粒度很大的影响,而且从某种程度上讲,粒度的选择就决定了系统内部的耦合性。
服务调用
服务调用分为同步调用、异步消息、批量文件、批量数据四种形式:
1.同步调用
在通信连接中,同步通信需要一个发送器和一个接收器来协同内部处理过程,这种协同表明同步通信要求高度耦合,通信由发送器和接收器协同完成,发送器和接收器的操作都依赖于请求过程。发送器发送下一个通信请求首先需要拿到接收器发回的应答结果或确认接收信息。
2.异步消息
异步通信并不需要发送器与接收器协同操作来完成通信,其耦合程度比同步通信的低。异步通信主要的实现方式为消息队列,通过这个队列实现这一对系统之间点对点的通信连接。这是异步通信中最简单的一种方式。发送器发送请求至消息队列,请求发出后,发送器就不再关心请求,而是继续操作;消息队列负责将一端进来的入队请求在另一端出队发送至接收器,进而进行处理。
3.批量文件
与上两种实时方式不同的是,批量方式为非实时处理。批量文件方式以批量的方式进行数据导出、生成文件、传输文件与数据装载。
4.批量数据
通过批量数据处理的方式进行数据的导出、传输与装载。