注意这一节标以“面向服务与面向对象”,有别于“比较面向服务与面向对象”。
				
				
				区别在于所强调的事实:在这两个思想派别之间不必是竞争关系。
		
		
		
				
						
								
								
						
				
		
		
				
				
				
						
				
		
		
				事实上,面向对象编程被普遍用于有
				Web
				服务内构建封装应用逻辑。然而,面向对象编程方法论在基本上与面向服务有何,这值得探究。对它们差异的理解会有助于你的工作。
				
						
				
		
		
				下面列出这些设计方法方面的比较。(然而面向服务是基于服务的设计,面向对象是围绕对象的创建为核心。为了避免服务和对象间的比较混乱,使用了“处理逻辑单元”这一术语。)
				
						
				
		
		
				
						l
				
				面向服务强调处理逻辑(服务)单元间的松散耦合。尽管面向对象支持创建复用性、松耦合的编程例程,它们多数是以预先定义的类依赖为基础,结果导致了更多处理逻辑(对象)的紧密绑定。
				
						
				
		
		
				
						l
				
				面向服务鼓励不优雅的接口(服务描述)以便于每个通信(消息)包含尽可能多的信息以便于工作完成指定任务。面向对象编程充分支持精确的接口(
				API
				)以便通信(
				RPC
				或本地
				API
				调用)单元能够执行不同规模的任务。
				
						
				
		
		
				
						l
				
				面向服务期待显著改变处理逻辑单元(服务)的作用域。面向对象处理逻辑(
				objects
				)趋于使其作用域更小且更有针对性。
				
						
				
		
		
				
						l
				
				面向服务促进活动未知的处理逻辑单元(服务)的创建,从而驱动通信单元(消息)的智能化。面向对象鼓励处理逻辑数据的绑定,产生了高度智能化的单元(对象)。
				
						
				
		
		
				
						l
				
				面向服务偏爱处理逻辑单元
				
				
				(服务)被设计成尽可能无状态。面向对象促进数据与逻辑的绑定,导致更具状态的单元(对象)。(然而,最近基于构件的设计方法偏离了这一趋势。)
				
						
				
		
		
				
						l
				
				面向服务支持组合松散耦合的处理逻辑单元(服务)。面向对象支持组合但也鼓励处理逻辑单元(
				objects
				)间的继承,这会导致紧耦合。
				
						
				
		
		
				你或许已经注意到我们避免提及特定的面向对象原则,比如封装、继承及聚合。因为我们还不会充分描述面向服务的原则,我们在这一层次上给出个别的比较范例。以后将
				详细解释个别的面向服务原则,然后
				再继续这一讨论。
				
						
				
		
		
				
						要点总结
				
				
						
								
						
				
		
		
				- 
						
								
										
										
								
						
						
								
										
												
														
																SOA
														
												
										
								
						
						从根本上源自客户
						-
						服务器架构。当前
						
								
										
												
														
																SOA
														
												
										
								
						
						使用了一些用于构建客户
						-
						服务器应用的技术。尽管更加完善,
						
								
										
												
														
																SOA
														
												
										
								
						
						引进的复杂性也与单纯的两层客户
						-
						服务器架构形成了尖锐对比。
						
								
						
				
- 
						
								
										
										
								
						
						分布式互联网架构已与
						
								
										
												
														
																SOA
														
												
										
								
						
						一样普遍,包括大量的技术。然而,不论是技术还是其基本设计原则,
						
								
										
												
														
																SOA
														
												
										
								
						
						都具有明显特征。例如,
						
								
										
												
														
																SOA
														
												
										
								
						
						引进了不同于分布式互联网架构的处理与安全需求,而且管理也典型地更加复杂,归咎于它对基于消息的通信的依赖。
						
								
						
				
- 
						
								
								
						
						传统架构已经且可继续在其自身的设计范式中使用
						Web
						服务。重要的是不要将这些架构与
						
								
										
												
														
																SOA
														
												
										
								
						
						相混淆。在分布式互联网架构中,发现了典型的对
						Web
						服务的非
						
								
										
												
														
																SOA
														
												
										
								
						
						方式的使用,此处
						Web
						服务被用于反映
						RPC
						风格的通信。